如何在提交表单时将PHP变量传递到Javascript cookie中
How to pass a PHP variable into a Javascript cookie on submit of form?
我正在设置一个自定义表单,以便在我的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。
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 );
}
?>
相关文章:
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 正在Javascript Cookie中设置重复密钥
- 更改Javascript cookie重定向
- 用于存储、检索和附加到url的javascript cookie
- 如果设置了过期日期,则Javascript Cookie为空
- javascript cookie value variable
- JavaScript Cookie会在瞬间闪烁隐藏的DIV
- Javascript Cookie Not Working
- 获取用于编写JavaScript cookie的复选框
- 根据域名和名称的范围删除重复的JavaScript cookie
- Javascript Cookie将于每周二到期
- JavaScript Cookie作用域更改留下2个名称相同但将读取的Cookie
- JavaScript cookie和未捕获的语法错误:Chrome中出现意外的令牌u
- 设置javascript cookie每小时过期一次
- 如何将 JavaScript cookie 传递给 PHP cookie
- JavaScript cookie 输入字段字符串显示错误
- 为什么这个JavaScript cookie不起作用
- Javascript Cookie define Path
- PHP 会话与 JavaScript cookie 冲突
- 在某些情况下,Javascript cookie 不会被删除