AJAX请求返回为'undefined'

时间:2017-02-22 09:02:35

标签: php ajax

我正在尝试从表中执行一个简单的AJAX请求,但是当我转换为var时,结果会以未定义的形式返回?

这是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();
}

我创建了一个严格针对ID 1选择的表单,因为当尝试使用Php动态执行此操作时,它正在执行相同操作,所以我将其设置为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" }

1 个答案:

答案 0 :(得分:3)

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

你得到它是因为javascript变量&#34; str&#34;未定义。只需检查并发送有效身份证即可。

开始以下一种方式写你的功能:

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

  // str is not empty
}