我在一个html页面上有两个表单,并希望使用第一个表单提交选择从数据库通过php/mysql查询和编码使用JSON填充我的第二个表单上的选择选项,而不离开页面。第一个表单和php正在发送数组,但第二个表单没有被填充。不知道我错过了什么,任何帮助都很感激。参考下面的html, php和query…
HTML<form method="post" action="find.php" id="find" >
<div class="input-box">
<label>Last Name</label>
<input type="text" name="lname"/>
</div>
<div class="input-box">
<label>Phone</label>
<input type="text" name="phone" />
</div>
<div class="submit">
<input type="submit" value="Select" />
</div>
</form>
<div><h1>Checkin</h1></div>
<form method="post" action="checkin.php" id="contact-us">
<div id="contact-us-message"></div>
<input type="hidden" name="date" id="date" />
<select id="clients" name="clients">
</select>
<div class="submit">
<input type="submit" value="Submit" />
</div>
</form>
PHP $lastname = $_POST['lname'] ;
$number = $_POST['phone'] ;
$q = "select Site_ID, FirstName, LastName, Email, Phone, Message, ParentName from ClientInfo where LastName = '$lastname' and Phone = '$number'";
$sql = mysql_query($q);
$data = array();
while($row = mysql_fetch_array($sql, true)){
$data[] = $row;
};
echo json_encode($data);
脚本<script type="text/javascript">
$("#find").submit(function(){
$.getJSON('checkin.php',function(data){
var items = '';
$.each(data,function(name,value) {
items += "<option type='text' value='"+value.Site_ID+"'>"+value.FirstName+" "+value.LastName+" </option>" ;
});
$("#clients").append(items);
});
});
</script>
编辑
Ok,我修复了id问题,现在当提交到php页面并返回正确的数组时。但是它不应该离开html页面。有人知道为什么吗?
数组[{"Site_ID":"10000007","FirstName":"Drew","LastName"...}]
您的脚本仅适用于具有id="test"
的元素,该元素在您的HTML中不存在
根据我,尝试尝试Divide and Conquer
规则,我的意思是将代码的每个部分分开,并试图找出每个部分都正常工作(独立代码)。
关于php
代码的第一件事
$lastname = $_POST['lname'] ; // change to some value
$number = $_POST['phone'] ; // change to some value
$q = "select Site_ID, FirstName, LastName, Email, Phone, Message,ParentName from ClientInfo where LastName = '".$lastname."' and Phone = '".$number."'";
$sql = mysql_query($q);
$data = array();
while($row = mysql_fetch_array($sql, true)){
$data[] = $row;
};
echo json_encode($data);
首先,对您的查询执行适当的concatenation
。然后检查,你当前的php
代码encode
转换成json
形式是否正确?
如果您验证了上面的代码,那么移动到javascript
代码并检查与html
代码相关的所有变量。如你所见
$("#test").submit(function(){
您提到了test
id,但在您的html
代码中,它无处存在。