【发布时间】:2017-12-17 06:24:44
【问题描述】:
我试图将数据从 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]
【问题讨论】:
-
不要使用
mysql_*函数。它们自 v5.5(2013 年 6 月)起已被弃用,自 v7.0(2015 年 12 月)起已被删除。而是将mysqli_* 或PDO 函数与prepared statements 和bound parameters 一起使用。 -
是的,我会改变它。关于我问的问题有什么建议吗? @AlexHowansky
-
能否请您突出显示您的 PHP 文件内容和 HTML 文件内容?截至目前,您的所有代码似乎都已写入单个文件。
标签: php html ajax forms scripting