2012-12-29 88 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代碼,它是無處存在。