2012-12-29 58 views
0

我有一个html页面上的两种形式,并希望使用第一种形式提交从php/mysql中选择数据库查询和编码使用JSON填充我的第二种形式的选择选项没有离开页面。第一种形式和PHP发送数组,但第二种形式没有被填充。不知道我缺少什么,任何帮助表示赞赏。见HTML,PHP和下面的查询......从表单提交使用getJSON填充选择选项

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

<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> 

编辑

好吧我修复了ID问题,现在当提交它去php页面和回声出正确的数组。但它不应该离开html页面。任何人都知道为什么?

ARRAY

[{"Site_ID":"10000007","FirstName":"Drew","LastName"...}] 
+0

您的脚本与HTML完全无关,因为它仅适用于HTML中不存在的id为“test”的元素。嗯,也许这是整个问题? – AndreKR

+0

首先检查浏览器控制台中的AJAX请求,以查看正在发送的内容以及正在返回的内容......如果有的话。如果您有500个错误,那么会出现php代码问题。这些细节需要知道,以便将问题隔离到脚本或服务器代码 – charlietfl

回答

1

您的脚本仅适用于id="test"的元素,它不会在你的HTML存在的。

+0

OP提及2窗体..提交处理程序显示代码以填充表单中的元素 – charlietfl

+0

一种形式是'#find',另一种形式是'#contact-我们',他们都不是'#test'。 – AndreKR

+0

ahhh yup ...我只注意到第一个表单html ..我的不好 – charlietfl

0

根据我的说法,尝试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代码,它是无处存在。