2014-11-03 47 views
0

我希望能够使用我的单选按钮的返回值编写几个mysql查询。这里是我使用AJAX发送单选按钮值以获取PHP文件以从MySQL检索数据

<html> 
<head> 
<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","getuser.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

       <?php include 'db_connector.php'; 

       $result = mysqli_query($con,"SELECT * FROM os_scope"); 

       while($row = mysqli_fetch_array($result)) { 

       $row['name']; 

       echo "<li><div class='toggle-btn-grp cssonly'> 

         <div><form><input type='radio' name='os' value=".$row['name']." id='myRadio' onchange='showUser(this.value)'> 

         <label class='toggle-btn'><div class='title'>".$row['name']."</form></div></label></div></div></li>"; 

      } 

       ?> 
<br> 
<div id="txtHint"><b>Person info will be listed here.</b></div> 

</body> 
</html> 

这里的代码我的PHP文件getuser.php

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

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

    mysqli_select_db($con,"ajax_demo"); 
    $sql="SELECT * FROM os "; 
    $result = mysqli_query($con,$sql); 

    echo "<table border='1'> 
    <tr> 
    <th>ID</th> 
    <th>Name</th> 
    <th>Scope</th> 
    <th>Client</th> 
    <th>Supplier</th> 
    </tr>"; 

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

    mysqli_close($con); 
    ?> 

然而,当我运行代码,我不断收到此错误: 注意:未定义指数:Q 这意味着q没有被发送到php文件,任何想法如何我可以解决这个问题? 我真的很感谢所有的帮助,我可以得到。对不起,如果这是一个愚蠢的问题,但我真的很新,所以我非常感谢帮助。谢谢。

回答

1

变化

xmlhttp.open("GET","getuser.php?=q"+str,true); 

xmlhttp.open("GET","getuser.php?q="+str,true); 

q=周围走错了路;)

+0

感谢回答你好,我做你的建议的修改,但我仍然出现错误**注意:未定义索引:q **当我单独运行php文件时,出现同样的错误。 – Annie 2014-11-05 17:05:53

+0

你是否在查询字符串中包含'q'的值?例如。在你的浏览器中访问'getuser.php?q = 123' – 2014-11-05 17:13:11

+0

另外,在你的示例代码中,你有一个在mysqli_close之后的关闭php标签,但是还有一些PHP。这也会导致意外的行为......如果在结束标记之后的附加PHP应该在那里,则应该在'mysqli_close'后面删除结束的PHP标记。 – 2014-11-05 17:14:48

相关问题