2017-01-23 96 views
0

我是新来的,所以我希望你能帮助我。将javascript值传递给精确页面而不刷新

我试图建立一个页面有能力添加和从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> 

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

?> 
+1

您需要澄清_“不起作用”_。控制台中的错误?检查浏览器网络选项卡“test.php”实际返回的内容?检查了您的错误日志中的PHP错误?你可能也想在你的'passValue'函数中放一个'e.preventDefault()'来阻止表单提交。 –

+0

更改'document.getElementById('state')xhr.responseText;'到'document.getElementById('state')。innerHTML = xhr.responseText;' –

+0

顺便说一句,你的PHP代码与javascript相同吗?然后你的ajax调用将返回'。你不能在PHP中运行JavaScript。 –

+0

是的,你可以。尝试$ php_var =''; –

+0

就像我说的那样,这只会给你一个变量_with那个文字text_。如果你回应它,它将被发送到浏览器,它将解析为JavaScript。 PHP将不会使用该JavaScript代码片段中的_results_。在服务器上解析PHP get,结果将被发送到解析任何html/js/css的客户端。 –