Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript确认变量传递给php变量_Javascript_Php - Fatal编程技术网

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

如何将JavaScript确认变量传递给php变量,javascript,php,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";

这是我的示例代码,希望您能帮助我。如何将JavaScript变量传递给php变量?为什么即使选择“取消”,它仍会显示为真

JavaScript

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

$phpChoose = "<script>document.write(jsChoose);</script>";
if($phpChoose==True){
  echo "true";
}
else{
  echo "false";
}
$phpChoose=“document.write(jsChoose);”;
如果($phpChoose==True){
呼应“真”;
}
否则{
呼应“假”;
}

使用ajax函数并通过该函数将变量发送到php

 $.ajax({
   type: "POST",
   url: "file url with php",
   data: {myVariable:value},
   complete: function(data){
       console.log(data);
   }
 });

使用ajax函数并通过它向php发送变量

 $.ajax({
   type: "POST",
   url: "file url with php",
   data: {myVariable:value},
   complete: function(data){
       console.log(data);
   }
 });

将信息从客户端(JS)传递到服务器端(PHP)的最佳方法之一是使用
html表单
。如果您不想让用户看到html表单,则可以从网页中
隐藏它。
您希望此表单
将所需信息发布到PHP脚本中。
例如,您希望将从确认框捕获的
布尔
变量传递到服务器端。因此,让我们使用确认框返回的值创建一个表单,并将其发布到服务器端

html表单:

<form id="myForm" action="testBoolean.php" method="post">
        <input type="hidden" id="inputBoolean" value="5"  name="boolean">
</form>

javascript(将其放在表单下方,否则可能会出错)


var jsChoose=confirm(“您确定吗?”);
document.getElementById(“inputBoolean”).value=jsChoose;
document.getElementById(“myForm”).submit();
现在您需要一个名为“testBoolean.php”的php页面,并在其中检索发布的信息。对于本演示,它将简单地回显由确认框给出的已发布布尔变量的值

testBoolean.php:

<?php
$boolean= htmlspecialchars($_POST['boolean']);

echo $boolean;

?>

记住,
$\u POST['']
括号内是您提交的输入字段的
名称。

希望这对你有所帮助,祝你好运,并致以良好的祝愿

将信息从客户端(JS)传递到服务器端(PHP)的最佳方法之一是使用
html表单
。如果您不想让用户看到html表单,则可以从网页中
隐藏它。
您希望此表单
将所需信息发布到PHP脚本中。
例如,您希望将从确认框捕获的
布尔
变量传递到服务器端。因此,让我们使用确认框返回的值创建一个表单,并将其发布到服务器端

html表单:

<form id="myForm" action="testBoolean.php" method="post">
        <input type="hidden" id="inputBoolean" value="5"  name="boolean">
</form>

javascript(将其放在表单下方,否则可能会出错)


var jsChoose=confirm(“您确定吗?”);
document.getElementById(“inputBoolean”).value=jsChoose;
document.getElementById(“myForm”).submit();
现在您需要一个名为“testBoolean.php”的php页面,并在其中检索发布的信息。对于本演示,它将简单地回显由确认框给出的已发布布尔变量的值

testBoolean.php:

<?php
$boolean= htmlspecialchars($_POST['boolean']);

echo $boolean;

?>

记住,
$\u POST['']
括号内是您提交的输入字段的
名称。

希望这对你有所帮助,祝你好运,并致以良好的祝愿

还有一种使用查询字符串的方法,如下所示:

<?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
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代码放在网页顶部,然后是包含以下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>

var ans=假;
如果(ans=确认(“您确定吗?”){
此.location+=“?answer=“+ans;
}
其他的
{
写下(“因为您似乎不确定,所以取消了操作”);
}   
虽然Ajax无疑是优雅的,但动态生成包含变量的查询字符串也是可行的选择。如果需要,可以利用stream_context_create()将查询字符串发布到另一个页面,而无需硬编码表单,如下所示:

<?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
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;
}
?>

在所需的url处,您只需要添加一个显示内容的脚本,例如:

<?php
var_dump($_POST['answer']);

还有一种使用查询字符串的方法,如下所示:

<?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
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代码放在网页顶部,然后是包含以下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>

var ans=假;
如果(ans=确认(“您确定吗?”){
此.location+=“?answer=“+ans;
}
其他的
{
写下(“因为您似乎不确定,所以取消了操作”);
}   
虽然Ajax无疑是优雅的,但动态生成包含变量的查询字符串也是可行的选择。如果需要,可以利用stream_context_create()将查询字符串发布到另一个页面,而无需硬编码表单,如下所示:

<?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
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;
}
?>

在所需的url处,您只需要添加一个显示内容的脚本,例如:

<?php
var_dump($_POST['answer']);

验证密码的简单方法

我们在javascript中使用自定义有效性 在这里,我刚刚创建了一个带有姓名、电子邮件和密码的注册表

为了确认密码,我使用了一个简单的方法

var password=document.getElementById(“密码”),confirm_password=document.getElementById(“confirm_密码”);
函数validatePassword(){
if(password.value!=确认密码.value){
确认_password.setCustomValidity(“密码不匹配”);
}否则{
确认密码。设置自定义有效性(“”);
}
}
password.onchange=validatePassword;

确认\u password.onkeyup=validatePassword验证密码的简单方法

我们在javascript中使用自定义有效性 在这里,我刚刚创建了一个带有姓名、电子邮件和密码的注册表

为了确认密码,我使用了一个简单的方法

var password=document.getElementById(“密码”),confirm_password=document.getElementById(“confirm_密码”);
函数validatePassword(){
if(password.value!=确认密码.value){
确认_password.setCustomValidity(“密码不匹配”);
}否则{
确认