2014-09-02 3 views
0

Я использую форму, чтобы получить адрес электронной почты, который будет записан для информационного бюллетеня моего сайта. эта форма управляется AJAX отправить и получить ответ:как передать эту переменную php?

$.ajax({ 
     url: "./control/newsletter/ct_newsletter_subscribe.php", 
     type: "POST", 
     data: $this.serialize(), 
     success: function(html) { 
      alert(html); // html contient l'id du dernier inscrit 
      if(html == 'erreur'){ 
       var message = "<p>Erreur d'enregistrement en BDD</p>"; 
      }else if(html != 'erreur'){ 
       var message = "Adresse email enregistrée en BDD : id = "+html; 
      } 

Я хочу, чтобы ответ (которые получают lastInsertId), которые будут использоваться во второй функции, чтобы получить информацию, записанную.

В файле ct_newsletter_subscribe.php Я получаю lastInsertId, но я не могу его повторно использовать.

 $LastInsertId = add_email_newsletter($newsletterNom, $newsletterPrenom, $newsletterEmail, $newsletterGsm, $registered, $regdate, $codeConfirm); 
     echo '<script>alert("ct newsletter subscribe L36 : '.$LastInsertId.'")</script>';// DEBUG 
     $reponse = $LastInsertId; 
     echo '<script>alert("ct newsletter subscribe L38 : '.$reponse.'")</script>';// DEBUG 

В этой части $ réponse и $ LastInsertId содержат последний идентификатор, но я не могу повторно использовать его для другой функции. 2 «эхо ...» не дает переменной, я хочу, чтобы они отображали . Я не понимаю, почему.

+0

http://stackoverflow.com/a/2722770/1401094 –

+1

Не отправляйте html и inline js из вызова ajax, отправляйте данные. Я бы порекомендовал json, но, конечно, xml сделает – Steve

+0

Как вы его «повторно используете»? –

ответ

0

Форма управляется .js с AJAX. AJAX отправляет $ _POST в ct_newsletter_subscribe.php. В ct_newsletter_subscribe.php Я вызываю функцию «add_email_newsletter», и его ответ $ LastInsertId верен.

Тогда я хочу, чтобы повторно использовать $ LastInsertId в другую функцию:

// First function works correctly : 
    $LastInsertId = add_email_newsletter($newsletterNom, $newsletterPrenom, $newsletterEmail, $newsletterGsm, $registered, $regdate, $codeConfirm); 
    echo '<script>alert("ct newsletter subscribe L36 : '.$LastInsertId.'")</script>';// DEBUG -> $LastInsertId is empty 
    $reponse = $LastInsertId; // this result is correct 
    echo '<script>alert("ct newsletter subscribe L38 : '.$reponse.'")</script>';// DEBUG -> $reponse is empty 

    if($reponse != 'erreur'){ // if no error appear in the first function 
     echo '<script>alert("ct newsletter subscribe L42 : '.$reponse.'")</script>';// DEBUG 
     //Récupération des données enregistrées : 
     // Fonction container : 
     include_once('../../model/newsletter/mo_newsletter_email_infos.php'); 
     //récupération des infos selon l'id retournée par $reponse : 
     $retourNewsletterEmailInfos = get_newletter_email_infos($LastInsertId); 

     $reponse .= ' & Fonction get_infos : '.$retourNewsletterEmailInfos[0]['email']; 
    } 
    echo $reponse; 

Затем в AJAX результат «HTML» правильно последний идентификатор вставляется.

Но в PHP, $ LastInsertId пусто для функции:

$retourNewsletterEmailInfos = get_newletter_email_infos($LastInsertId); 

отладки линия не показывает никакого содержания в $ réponse

echo '<script>alert("ct newsletter subscribe L42 : '.$reponse.'")</script>';// DEBUG 
+0

Проблема была в первой функции add_email_newsletter. В конце я использовал «эхо», вызвавший нежелательный ответ в AJAX. Я использую теперь «возврат», с которым я могу справиться должным образом. Благодарю за помощь! – kobano

Смежные вопросы