Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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_Jquery - Fatal编程技术网

在不刷新的情况下,将javascript值在精确页面中传递给php

在不刷新的情况下,将javascript值在精确页面中传递给php,javascript,php,jquery,Javascript,Php,Jquery,我是新手,希望你能帮我 我正在尝试构建一个能够添加和删除sqldb的页面 出于某种原因,我不得不将值从js发送到php,我尝试了这个基本代码,但它不起作用 <html> <head> <script src="resources/js/jquery-2.2.3.js"> </script> </head> <body> <form method="get"> <inpu

我是新手,希望你能帮我

我正在尝试构建一个能够添加和删除sqldb的页面

出于某种原因,我不得不将值从js发送到php,我尝试了这个基本代码,但它不起作用

<html>
<head>
      <script src="resources/js/jquery-2.2.3.js"> </script>
</head>
<body>

    <form method="get">
        <input type="button" value="submit" name="submit" class="test">
    </form>

    <div id="state"></div>
</body> 


$('.test')。单击(passValue);
函数passValue(e){
document.getElementById('state').innerHTML=“单击按钮”;
var js_var=“xml recevid”;
var xhr=new XMLHttpRequest();
var url='test.php?js_var='+js_var;
xhr.open('GET',url,false);
xhr.onreadystatechange=函数(){
if(xhr.readyState==4&&xhr.status==200){
document.getElementById('state')xhr.responseText;
}
}
xhr.send();
}
使用
$php_var=“document.write('js_var');”


请注意,js_var应该是一个全局变量,而不是局部变量。

您需要澄清“不起作用”。控制台中的错误?检查浏览器网络选项卡
test.php
实际返回什么?检查错误日志中的PHP错误?您可能还希望在
passValue
-函数中添加
e.preventDefault()
,以阻止表单提交。更改
document.getElementById('state')xhr.responseText
to
document.getElementById('state')。innerHTML=xhr.responseText顺便问一下,您的PHP代码与javascript在同一页面上吗?然后您的ajax调用将返回。。。内容也一样。抱歉,我已将其修复为document.getElementById('state')。innerHTML.responseText;但这并不是问题所在,当我单击submit按钮时,innerHtml的状态不会更改为“xml recevid”。我在主线程上的console Synchronous XMLHttpRequest中获得的内容已被弃用,因为它会对最终用户的体验产生有害影响。这将实现什么?它只会给他一个PHP变量,文本为document.write('js_var')
。你不能在PHP中运行javascript。是的,你可以。试试$php_var='document.write(“js_var”);就像我说的,这只会给你一个文本变量。如果您回显它,它将被发送到浏览器,浏览器将把它解析为javascript。PHP永远无法使用该javascript片段的结果。PHP get在服务器上解析,结果将发送到客户端,客户端将解析任何html/js/css。正如我前面所说的,将js变量与任何函数放在一起,然后将它们。。。它会正确运行的。我是说js变量输出的javascript函数如下:var js_var=“some value”;不是函数someFunction(){var js_var=“xml recevid”;}
<script type="text/javascript">
    $('.test').click(passValue);



    function passValue(e){

          document.getElementById('state').innerHTML="button is clicked";

        var js_var = "xml recevid";

        var xhr = new XMLHttpRequest();


            var url = 'test.php?js_var=' + js_var;
            xhr.open('GET', url, false);
            xhr.onreadystatechange = function () {
                if (xhr.readyState===4 && xhr.status===200) {

                    document.getElementById('state')xhr.responseText;

                }
            }
            xhr.send();

    }

</script>

<?php

 if (isset($_GET['js_var'])) $php_var = $_GET['js_var'];

    else $php_var = "<br />js_var is not set!";
    echo $php_var;

?>