簡體   English   中英

通過AJAX將JavaScript變量傳遞給PHP

[英]Passing JavaScript variable to PHP through AJAX

我正在遵循http://www.w3schools.com/php/php_ajax_database.asp上的指南,並且了解了其工作原理。

我的代碼:

PHP:

<?php
include('./db.php');
$PM = mysqli_query($con, "SELECT DISTINCT PMName FROM report WHERE PMname <> '' ORDER BY PMName ASC");
?>
<select class="navbar-inverse" placeholder="PM Name" name="PMName"onchange="showUser(this.value)">
<?php
while ($row = mysqli_fetch_row($PM)) {
$selected = array_key_exists('PMName', $_POST) && $_POST['PMName'] == $row[0] ? ' selected' : '';
printf(" <option value='%s' %s>%s</option>\n", $row[0], $selected, $row[0]);
}
?>
</select>
<div id="txtHint"><b></b></div>

JavaScript的:

<script>
    function showUser(str) {
      if (str !==".PM") {
        alert(str);
        if (str=="") {
          document.getElementById("txtHint").innerHTML="";
          return;
        } 
        if (window.XMLHttpRequest) {
          // code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
        } else { // code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function() {
          if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
          }
        }
      }
      xmlhttp.open("GET","getuser.php?q="+str,true);
      xmlhttp.send();
    }
</script>

和getuser.php頁面:

<?php
$q = intval($_GET['q']);
include('./db.php');
$sqlPM= "SELECT * FROM report WHERE PMName = '".$q."'";
$result     = mysqli_query($con, $sqlPM);
?>

<table>
<?php
echo $q ;
?>
</table>

我在這里閱讀了大約12篇文章,並試圖理解一個事實,即大多數文章都使用$.post('getuser.php'某種形式將變量發送到新的PHP頁面,但是w3schools的示例確實在初始頁面上,我的下拉列表正在我的數據庫中填充,並且我選擇的值正在傳遞到JavaScript函數中,我使用alert(str); ,但是從那里開始,似乎到達了第二個PHP頁面,我嘗試使用echo $q ;來測試它是否通過,但是結果為空。

我在做錯什么導致JavaScript函數捕獲的變量沒有傳遞到第二個PHP頁面?

從我所看到的,我很好地按照教程上的說明進行操作。

$.post('getuser.php'此語法是jQuery JavaScript庫所獨有的。此外, $q不是integer ,考慮到最初執行的數據庫查詢,它是一個string ,所以為什么要包裝$_GET['q']intval()嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM