如何传输这个php变量?

时间:2014-09-02 12:55:53

标签: php variables

我使用表单来获取将记录在我网站的简报中的电子邮件地址。 这个表单由AJAX发送管理并获得响应:

$.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

在这部分中,$ reponse和$ LastInsertId包含最后一个id,但我不能将它重用于另一个函数。 2“echo ...”没有给出我希望它们显示的变量 我不明白为什么。

1 个答案:

答案 0 :(得分:0)

表单由带有AJAX的.js管理。 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”结果正确地插入了最后一个id。

但是在PHP中,$ LastInsertId对于函数是空的:

$retourNewsletterEmailInfos = get_newletter_email_infos($LastInsertId);

调试行未在$ reponse中显示任何内容

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