2017-02-22 208 views
0

我想从表执行一个简单的AJAX请求,但是当我var转储结果返回为undefined?AJAX请求返回'undefined'

这里是JS:

function showUser(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 (this.readyState==4 && this.status==200) { 
     document.getElementById("txtHint").innerHTML=this.responseText; 
    } 
    } 
    xmlhttp.open("GET","actions/teamData.php?q="+str,true); 
    xmlhttp.send(); 
} 

我创建了因为想这样做动态使用PHP它是做一样的,所以我已经将它设置为1是当对ID 1选择一个严格的形式确保现在:

<option value="1">' . $row['name'] . '</option> 

这是PHP做请求:

$q = intval($_GET['q']); 

var_dump($_GET); 

$sql = "SELECT * FROM team WHERE id = ' " . $q . " ' "; 
$result = mysqli_query($conn,$sql); 

echo "<table> 
<tr> 
<th>Team name</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) { 
    echo "<tr>"; 
    echo "<td>" . $row['name'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

mysqli_close($conn); 

我有一个有效的连接已经过测试。但结果回来为:

array(1) { ["q"]=> string(9) "undefined" } 
+0

打印您的查询,并检查你想说什么? –

+0

作为变量str,你发送了什么? –

+1

这里'id ='“。$ q。”'“;'删除数字周围的空格,使得'id ='”。 $ q。 “'”;' – RiggsFolly

回答

3
array(1) { ["q"]=> string(9) "undefined" } 

你得到它,因为JavaScript变量“STR”是不确定的。只需检查它并发送一个有效的ID。

开始写你在接下来的方式起作用:

function send_xhr(str) { 
    str = str || ''; 
    if (!str) { // str is empty 
    // Do something 
    } 

    // str is not empty 
}