2017-01-23 35 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的客戶端。 –