PHP AJAX MySql抓取数据 - 单选按钮

时间:2014-09-02 20:08:11

标签: javascript php jquery mysql ajax

是否可以通过单击单选按钮显示数据库中的数据。目前我把它设置为一个下拉框但我希望它连接到我的单选按钮。这是我目前的一个单选按钮代码:

<Input type = 'Radio' Name ='compcase' value= '1' />NZXT Phantom Enthusiast USB3.0 Full Tower Case - White <br />

我目前的代码是:

的index.php

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

</script>

<select name="case_price" onchange="showUser(this.value)">
<option value="">Select a processor:</option>
<option value="1">i5 2500k</option>
<option value="2">i5 4970k</option>
<option value="3">i7 4770k</option>
<option value="4">i7 4790k</option>
</select>
<div id="txtHint"><b>Processor listed here</b></div>

getprice.php

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

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

mysqli_select_db($con,"compcase");
$sql="SELECT * FROM compcase WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);

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

mysqli_close($con);
?>

1 个答案:

答案 0 :(得分:0)

当你要通过ajax从php文件中获取许多数据时你不知道它们有多少
您必须将数据格式更改为 JSON
试试这个:

$q = intval($_GET['q']);
$con = mysqli_connect('localhost','root','','test');
mysqli_select_db($con,"compcase");
$sql="SELECT * FROM compcase WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);

$callBack = json_encode( mysqli_fetch_array($result) );
//then echo that
echo $callback;

mysqli_close($con);

JavaScript 文件中,您可以按 JSON.parse(xmlhttp.responseText); 解析数据
它会为您提供包含数据的数组
我建议你通过以下方法检测数组中的索引名称:
console.log(JSON.parse(xmlhttp.responseText));
然后,只需按 F12 并点击控制台

,即可检测如何访问数据