在不刷新的情况下,将javascript值在精确页面中传递给php
我是新手,希望你能帮我 我正在尝试构建一个能够添加和删除sqldb的页面 出于某种原因,我不得不将值从js发送到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
<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
todocument.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;
?>