PHP和Javascript向服务器发送相同的随机值
我想为PHP和javascript变量设置相同的随机值,但当我发布表单时,这些随机变量会发生更改 我所做的是: PHP中的PHP和Javascript向服务器发送相同的随机值,javascript,php,Javascript,Php,我想为PHP和javascript变量设置相同的随机值,但当我发布表单时,这些随机变量会发生更改 我所做的是: PHP中的 $rand_string = $gen->RandomString(7); //It generate random string if(isset($_POST['call'])) { $toid = $_POST['id']; $username = $_SESSION['username']; $byid = $_SESSION['us
$rand_string = $gen->RandomString(7); //It generate random string
if(isset($_POST['call']))
{
$toid = $_POST['id'];
$username = $_SESSION['username'];
$byid = $_SESSION['user_id'];
$conn->setNotification($toid,$byid,$username,$rand_string); //It store data in database
}
<form onsubmit="popitup('calling.php')" method="POST" action="">
<input type="hidden" name="id" value="1" />
<input type="hidden" name="username" value="john" />
<button class="btn" type="submit" name="call">call</button>
function popitup(url) {
var rand_val = '<?php echo $rand_string; ?>';
newwindow=window.open(url+"?room="+rand_val,'name');
if (window.focus) {newwindow.focus()}
return false;
}
HTML中的
$rand_string = $gen->RandomString(7); //It generate random string
if(isset($_POST['call']))
{
$toid = $_POST['id'];
$username = $_SESSION['username'];
$byid = $_SESSION['user_id'];
$conn->setNotification($toid,$byid,$username,$rand_string); //It store data in database
}
<form onsubmit="popitup('calling.php')" method="POST" action="">
<input type="hidden" name="id" value="1" />
<input type="hidden" name="username" value="john" />
<button class="btn" type="submit" name="call">call</button>
function popitup(url) {
var rand_val = '<?php echo $rand_string; ?>';
newwindow=window.open(url+"?room="+rand_val,'name');
if (window.focus) {newwindow.focus()}
return false;
}
但在这里发生的是,$rand_string
在数据库中发送和在javascript新窗口中发送是不同的。
我怎样才能解决这个问题
提前感谢,谢谢
抱歉,英语不好。每次调用submit the page calling.php时,它都会更改$rand_string变量中的值,因此您需要像下面这样更改代码
if(isset($_POST['call']))
{
$toid = $_POST['id'];
$username = $_SESSION['username'];
$byid = $_SESSION['user_id'];
$conn->setNotification($toid,$byid,$username,$rand_string); //It store data in database
$rand_string = $gen->RandomString(7); //It generate random string
}
else
{
$rand_string = $gen->RandomString(7); //It generate random string
}
它将解决您的问题最开始的php是
调用.php
?@Mickeelleger No调用.php
的内容不同,这些php内容转到setNotification.php
。我认为在js函数中混合php代码从来都不是一个好主意。我会将popitup('calling.php')更改为popitup('calling.php',$rand_string),然后将js函数定义更改为函数popitup(url,rand_string){…}@PradipDhakal,看起来您的$rand_string
将被重新生成。您不能只使用php会话来存储$rand_string
?您应该尝试使用Ajax在数据库中使用一些JS+插入数据。想法:1/当用户生成子表单时,您对setNotification.php
执行ajax调用:您创建$rand\u字符串
+将其插入数据库。2/将此$rand_string
发送回JS(只需在php末尾使用echo$rand_string
),并在ajax调用的成功部分使用此值。3/现在使用此值执行popitup使用相同值执行的操作。您是否使用jQuery以便我可以尝试anwser?