如何在提交表单时将PHP变量传递给Javascript cookie?

时间:2016-05-16 17:53:13

标签: javascript php jquery cookies

我正在设置一个自定义表单,用于我的wordpress网站。我想要做的是获取该提交的AUTO_INCREMENT ID,并在提交表单时将其传递给Javascript cookie。目前ID正在运行,但由于在提交表单之前不会抓取ID,因此我无法确定如何在表单提交后立即将变量传递到cookie中(目前我必须在创建ID的cookie之前两次提交表单,并且它的1个数字应该低于它应该是因为它是后面提交的。)

这是我目前所拥有的:

<?php
if(isset($_POST["submit"])) {
    $name = $_POST['full_name'];
    $city = $_POST['city'];
    $state = $_POST['state'];
    $email = $_POST['email'];

    $wpdb->insert(
        'reps',
        array(
            'name' => stripslashes($name),
            'city' => stripslashes($city),
            'state' => stripslashes($state),
            'email' => stripslashes($email)
        )
    );

    $lastid = $wpdb->insert_id;
}
?>
<script>
$('#dealer-form').submit(function() {
    var repID = '<?php echo $lastid ?>';
    setCookie('ID', repID);
});
</script>

正如我所提到的,此代码适用于第二次提交(因为变量在第一次提交时没有值),并且ID是1后面的数字,因为它在重新分配变量值之前抓取了先前提交的ID。

1 个答案:

答案 0 :(得分:1)

PHP是服务器端脚本语言,在将数据发送到浏览器之前执行。 JavaScript是一种客户端脚本语言,一旦浏览器遇到脚本就会执行。

你的方法是忘记前端和后端之间的这种分离。

要完成您要执行的操作,只需在您提交表单在php 中输出setCookie来电:

<?php
    if(isset($_POST["submit"])) {
        $name = $_POST['full_name'];
        $city = $_POST['city'];
        $state = $_POST['state'];
        $email = $_POST['email'];

        $wpdb->insert(
            'reps',
            array(
                'name' => stripslashes($name),
                'city' => stripslashes($city),
                'state' => stripslashes($state),
                'email' => stripslashes($email)
            )
        );

        $lastid = $wpdb->insert_id;

        printf( '<script>setCookie("ID", %d);</script>', $lastid );
    }
?>