这是我的示例代码,希望您能帮助我。我如何将JavaScript变量传递给php变量,为什么即使我选择取消它也会保持弹出?
的JavaScript
var jsChoose = confirm("are you sure?");
PHP
$phpChoose = "<script>document.write(jsChoose);</script>";
if($phpChoose==True){
echo "true";
}
else{
echo "false";
}
答案 0 :(得分:2)
使用ajax函数并通过它将变量发送到php
$.ajax({
type: "POST",
url: "file url with php",
data: {myVariable:value},
complete: function(data){
console.log(data);
}
});
答案 1 :(得分:2)
将信息从客户端(JS)传递到服务器端(PHP)的最佳方法之一是使用html form
。如果您不希望用户看到,html表单可以来自网页hidden
您希望此表单为POST
PHP脚本所需的信息
例如,您希望将boolean
变量传递到服务器端,该变量是从确认框中捕获的。因此,让我们使用从确认框返回的值将表单发送到服务器端。
html表单:
<form id="myForm" action="testBoolean.php" method="post">
<input type="hidden" id="inputBoolean" value="5" name="boolean">
</form>
javascript(将此信息放在您的表单下方,如果您不这样做,可能会收到错误)
<script>
var jsChoose = confirm("are you sure?");
document.getElementById("inputBoolean").value = jsChoose;
document.getElementById("myForm").submit();
</script>
现在你需要一个名为&#34; testBoolean.php&#34;的php页面。并在其中检索发布的信息。对于此演示,它将简单地回显出您的确认框给出的POSTed布尔变量的值。
testBoolean.php:
<?php
$boolean= htmlspecialchars($_POST['boolean']);
echo $boolean;
?>
请记住$_POST['']
括号内的内容是您提交的输入字段的name
。
希望这会有所帮助,祝你好运和最好的问候。
答案 2 :(得分:0)
还有一种方法可以使用查询字符串,如下所示:
<?php
if ( isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != null ) {
$qs = htmlentities($_SERVER['QUERY_STRING']);
list(,$ans) = explode("=",$qs);
if ($ans) {
echo "Your answer is $ans. ";
}
exit("Thank you");
}
?>
您可以将PHP代码放在网页的顶部,然后是包含以下JavaScript的HTML:
<script>
var ans = false;
if( ans = confirm("Are you sure?")) {
this.location += "?answer=" + ans;
}
else
{
document.write("Action cancelled since you seem unsure");
}
</script>
虽然Ajax当然很优雅,但动态生成包含变量的查询字符串也是一个可行的选择。如果需要,您可以通过利用stream_context_create()将查询字符串POST到另一个页面而无需对表单进行硬编码,如下所示:
<?php
error_reporting(E_ALL);
if ( isset($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] != NULL))
{
$url = 'http://www.example.com/some_page.php';
$qs = htmlentities($_SERVER['QUERY_STRING']);
list($key,$value) = explode("=",$qs);
$arr = array($key => $value);
$options = array(
'http'=>array(
'method'=>"POST",
'header'=>
"Accept-language: en\r\n".
"Content-type: application/x-www-form-urlencoded\r\n",
'content'=>http_build_query( $arr )
));
$context = stream_context_create($options);
$fp=fopen($url,'rb',false,$context);
fpassthru($fp);
fclose($fp);
exit;
}
?>
在所需的网址上,您只需添加一个显示内容的脚本,例如:
<?php
var_dump($_POST['answer']);
答案 3 :(得分:0)
验证密码的简单方法
我们在javascript中使用自定义有效性 在这里,我刚刚创建了一个名称,电子邮件和密码
的注册表确认密码我用javaScript这是一个简单的方法。
var password = document.getElementById("password"), confirm_password = document.getElementById("confirm_password");
function validatePassword(){
if(password.value != confirm_password.value) {
confirm_password.setCustomValidity("Passwords Does not Match");
} else {
confirm_password.setCustomValidity('');
}
}
password.onchange = validatePassword;
confirm_password.onkeyup = validatePassword;
&#13;
div{
padding : 5px;
}
&#13;
给出我在输入字段中给出的ID,以便在JS中识别它们
<html>
<form>
<div style="padding:5px">
<div>
<input type="text" name="user_name" placeholder="Name">
</div>
<div>
<input type="email" name="user_email" placeholder="Email">
</div>
<div>
<input type="password" id="password" name="user_pass" placeholder="Password">
</div>
<div>
<input type="password" id="confirm_password" name="user_conf_pass" placeholder="Confirm Password">
</div>
<button type="submit" >Register</button>
</div>
</form>
</html>
&#13;