2015-12-05 61 views
0

我使用ajax來獲取我的數據庫信息和即時通訊運行到一個問題。沒有顯示任何回報。Php Ajax數據庫信息獲取沒有從batabase返回

我有一個選擇列表,需要一個js腳本來運行onchange,它要求php文件獲取數據庫信息並將其返回到表中。

問題是,在onchange事件中,我有一個表格,只顯示錶頭,但沒有下面的信息。我檢查控制檯和Im得到的錯誤是這樣的:

GET http://lineofcode.com/favicon.ico 401(未授權)

那顯示的唯一錯誤。我究竟做錯了什麼?爲什麼我的桌子是空白的?

HTML

<p>Please select a team name from the list to view table</p> 
<form> 
    <select name="users" onchange="showTeam(this.value)"> 
     <option value="">Select a team:</option> 
     <option value="1">bobcats</option> 
     <option value="2">rangers</option> 
     <option value="3">hawks</option> 
     <option value="4">rockets</option> 
    </select> 
</form> 
<br> 
<div id="teamInfo"><b></b></div> 

JS腳本

// script for onchange event 
    function showTeam(str) { 
     if (str == "") { 
      document.getElementById("teamInfo").innerHTML = ""; 
      return; 
     } else { 
      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("teamInfo").innerHTML = xmlhttp.responseText; 
       } 
      }; 
      xmlhttp.open("GET","phpfiles/getTeam.php?q="+str,true); 
      xmlhttp.send(); 
     } 
    } 

PHP文件

<!DOCTYPE html> 
<html> 
    <head> 
     <style> 
     table { 
      width: 100%; 
      border-collapse: collapse; 
     } 

     table, td, th { 
      border: 1px solid black; 
      padding: 5px; 
     } 

     th {text-align: left;} 
     </style> 
    </head> 
<body> 

<?php 
    $q = intval($_GET['q']); 

    $con = mysqli_connect('localhost','....','.....','....'); 
    if (!$con) { 
     die('Could not connect: ' . mysqli_error($con)); 
    } 

    mysqli_select_db($con,"ajax_demo"); 
    $sql="SELECT * FROM teams WHERE teamname = '".$q."'"; 
    $result = mysqli_query($con,$sql); 

    echo "<table> 
    <tr> 
    <th>teamname</th> 
    <th>city</th> 
    <th>bestplayer</th> 
    <th>yearformed</th> 
    <th>website</th> 
    </tr>"; 
    while($row = mysqli_fetch_array($result)) { 
     echo "<tr>"; 
     echo "<td>" . $row['teamname'] . "</td>"; 
     echo "<td>" . $row['city'] . "</td>"; 
     echo "<td>" . $row['bestplayer'] . "</td>"; 
     echo "<td>" . $row['yearformed'] . "</td>"; 
     echo "<td>" . $row['website'] . "</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
    mysqli_close($con); 
?> 
+0

您的JavaScript代碼需要HTML片段,但PHP代碼正在返回一個不完整的HTML文檔。 – symcbean

回答

0

只是一個觀察,但笑沒有這樣的代碼?

 xmlhttp.open("GET","phpfiles/getTeam.php?q="+str,true); 
     xmlhttp.send(); 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById("teamInfo").innerHTML = xmlhttp.responseText; 
      } 
     }; 

也儘量的print_r($ _ GET),看看是否值被公佈

0

不知道這是問題,但您使用INTVAL()--e.g。將輸入字符串轉換爲整數 - 並且數據庫中的團隊名稱不匹配(假設您給出了團隊名稱而不是數字)。