我试图将数据从html表单发送到PHP代码,将所选值与数据库中的某些信息进行比较,并将结果返回显示...到目前为止,我得到了所有工作并且数据显示正确。问题是,当我得到结果时,我会再次在第一个下方显示下拉框。
我实际上将它们分成两个文件d.php和form.html(其中包括表单和ajax代码),它实际上以这种方式完美地工作。但我实际上是想在一个php文件中获取所有代码。这是我的代码:
mysql_select_db("");
$q = intval($_GET['q']);
if($q=='6000'){
$getrow= "SELECT ProdPrice WHERE ProdID = 6000";
$list = mysql_query($getrow, $...) or die(mysql_error());
$rs = mysql_fetch_assoc($list);
$totalRows_list = mysql_num_rows($list);
echo $rs['ProdPrice'];
}
?>
<html>
<head>
<script>
function showUser(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("txtHint").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="6000">15</option>
<option value="2">n</option>
<option value="3">n</option>
<option value="4">e</option>
</select>
</form>
<br>
<div id="txtHint"></b></div>
</br>
</body>
</html>
[before submitting form value][1]
[after selecting the value][1]
答案 0 :(得分:0)
实际上并没有什么不妥。当服务器完成PHP代码的执行后,它将继续读取HTML内容并将其发送到浏览器。
要解决此问题,请在PHP代码中if条件if($q=='6000'){
的结束括号之前添加此行:
exit();
另外,正如Alex评论的那样,请使用mysqli_*
函数。 mysql_*
现已弃用,因此容易受到安全威胁。