我如何将JavaScript确认变量传递给php变量

时间:2017-04-23 02:26:38

标签: javascript php

这是我的示例代码,希望您能帮助我。我如何将JavaScript变量传递给php变量,为什么即使我选择取消它也会保持弹出?

的JavaScript

var jsChoose = confirm("are you sure?");

PHP

$phpChoose = "<script>document.write(jsChoose);</script>";
if($phpChoose==True){
  echo "true";
}
else{
  echo "false";
}

4 个答案:

答案 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这是一个简单的方法。

&#13;
&#13;
        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;
&#13;
&#13; 我添加了5px的填充但不需要来执行此过程只是为了添加一些样式。
&#13;
&#13;
div{
  padding : 5px;
}
&#13;
&#13;
&#13; Html 页面简单来自。 不需要PHP

给出我在输入字段中给出的ID,以便在JS中识别它们

&#13;
&#13;
<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;
&#13;
&#13;