Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] public function выполняется не полностью


Recommended Posts

Доброго дня.

Есть некая функция, которая выполняется при добавлении нового подписчика, вот она:

public function subscribe() {
условие{
$this->model_account_newslettersubscribe->subscribe($this->request->post);
echo('$("'.$prefix_eval.' #notification").html("<div class=\"success\"> '.$this->language->get('subscribe').'</div>");');
} else {
echo('$("'.$prefix_eval.' #notification").html("<div class=\"warning\"> '.$this->language->get('alreadyexist').'</div>");');
}
}

Если условие выполняется, подписчик попадает в базу, и должен происходить вывод echo, но вывод почему-то не происходит.

Если условие не выполняется, то echo (который warning) выводится нормально.

Если убрать строку выполнения записи, то echo выводится.

Собственно вопрос - что нужно сделать, чтобы в условии отрабатывали обе строки:

$this->model_account_newslettersubscribe->subscribe($this->request->post);
echo('$("'.$prefix_eval.' #notification").html("<div class=\"success\"> '.$this->language->get('subscribe').'</div>");');

Спасибо.

 

Вот вся функция:

	public function subscribe() {
	
		$prefix_eval = "";
	  
		$this->language->load('module/newslettersubscribe');
	 
		$this->load->model('account/newslettersubscribe');
	  
			if (isset($this->request->post['subscribe_email']) and filter_var($this->request->post['subscribe_email'],FILTER_VALIDATE_EMAIL)) {
	
				if(!$this->model_account_newslettersubscribe->checkmailid($this->request->post)){

					$this->model_account_newslettersubscribe->subscribe($this->request->post);
					
					echo('$("'.$prefix_eval.' #notification").html("<div class=\"success\"> '.$this->language->get('subscribe').'</div>");');
				
			        if($this->config->get('newslettersubscribe_mail_status')){

						$subject = $this->language->get('mail_subject');	
						
						$message = '<table width="60%" cellpadding="2"  cellspacing="1" border="0"> 
									 <tr>
									   <td> Email Id </td>
									   <td> '.$this->request->post['subscribe_email'].' </td>
									 </tr>
									 <tr>
									   <td> Name  </td>
									   <td> '.$this->request->post['subscribe_name'].' </td>
									 </tr>';
						$message .= '</table>';
			 
						$mail = new Mail();
						$mail->protocol = $this->config->get('config_mail_protocol');
						$mail->parameter = $this->config->get('config_mail_parameter');
						$mail->hostname = $this->config->get('config_smtp_host');
						$mail->username = $this->config->get('config_smtp_username');
						$mail->password = $this->config->get('config_smtp_password');
						$mail->port = $this->config->get('config_smtp_port');
						$mail->timeout = $this->config->get('config_smtp_timeout');				
						$mail->setTo($this->config->get('config_email'));
						$mail->setFrom($this->config->get('config_email'));
						$mail->setSender($this->config->get('config_name'));
						$mail->setSubject($subject);
						$mail->setHtml($message);
						$mail->send();
					}

				} else {

					  echo('$("'.$prefix_eval.' #notification").html("<div class=\"warning\"> '.$this->language->get('alreadyexist').'</div>");$("'.$prefix_eval.' #subscribe")[0].reset();');
				}
			   
			} else {

				echo('$("'.$prefix_eval.' #notification").html("<div class=\"warning\"> '.$this->language->get('error_invalid').'</div>")');

			}
	  
	} 
Змінено користувачем mazein
Надіслати
Поділитися на інших сайтах

nikifalex, модель подгружается, функция записи в базу выполняется, т.е. строка

$this->model_account_newslettersubscribe->subscribe($this->request->post);

выполняется нормально, но вот вывод echo почему-то не происходит.

 

Если я убираю выполнение функции из модели, ну т.е. тупо делаю так:

//$this->model_account_newslettersubscribe->subscribe($this->request->post);
echo('$("'.$prefix_eval.' #notification").html("<div class=\"success\"> '.$this->language->get('subscribe').'</div>");');

то вывод echo происходит.

Не понятно, почему они не работают вместе.

Надіслати
Поділитися на інших сайтах

AlexDW, пожалуйста:

	public function subscribe($data) {
	  	   
		   $this->db->query(" INSERT INTO " . DB_PREFIX . "subscribe SET email_id='".$data['subscribe_email']."',name='".$data['subscribe_name']."' ,date= CURDATE() ");

	}
Надіслати
Поділитися на інших сайтах

В общем, разобрался, в записи в базу участвовала ещё переменная subscribe_name, которая нигде не объявлена. Проглядел я её.

Всем спасибо.

Надіслати
Поділитися на інших сайтах

и что, в журнале ошибок - пусто? :-)

 

date нужно экранировать, а сами данные санитизить

 

$this->db->query(" INSERT INTO " . DB_PREFIX . "subscribe SET email_id='".(int)$data['subscribe_email']."',name='".$this->db->escape($data['subscribe_name'])."' ,`date`=CURDATE() ");

Надіслати
Поділитися на інших сайтах

и что, в журнале ошибок - пусто? :-)

Когда смотрел, было пусто, потом чёт протупил, и не посмотрел, короче сам лоханулся.

Аж стыдно блин.

Змінено користувачем mazein
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.