2011-08-15 74 views
1

我正在使用Json從mysql中檢索元素並將它們插入到表單框中。顯示在表單框(文本類型)不是一個問題,但在我的HTML表單結構中的一個是Dropbox ...我應該如何顯示在數據庫中的信息是在保存箱中的?使用JSON來選擇Dropbox選項

這裏是我用於顯示錶單類型(文本)中的元素的代碼。其中之一是html中的dropbox。

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("#button1").click(function(){ 
$.post('script_1.php', { id: $('input[name="id"]', '#myForm').val() }, 
function(json) { 
$("input[name='title']").val(json.title); 
$("input[name='rno']").val(json.rno); 
$("input[name='url']").val(json.url); 
}, "json"); 
}); 
</script> 
</head> 
<body> 
<form id="myForm" method="post"> 
id: <input type="text" name="id"/> 
<input type="button" id="button1" value ="Get"/> 
<input type="button" id="button2" value="Submit to script 2" /> 
<p>title:<input type="text" name="title"/></p> 
<p>Report No:<input type="text" name="rno"/></p> 
<p>URL:<input type="text" name="url"/></p> 
Institution: <select name="institution"> 
<option value="abc">abc</option> 
<option value="cdf">cdf</option> 
</select> 
</form> 
<div id="age"></div> 
</body> 
</html> 

PHP部分或script_1.php

<?php 

ini_set('display_errors', 1); 
error_reporting(E_ALL^E_NOTICE); 
//connect to DB part 
$name = mysql_real_escape_string($_POST['id']); 
$sql ="SELECT * FROM parentid WHERE id = '$name'";  
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
**//i am not using $row['institution'] (no institution or dropbox part)** 
$abc_output = array('title' => $row['title'],'rno' => $row['reportno'],'url' => $row['calc_url']); 
} 
} 
echo json_encode($abc_output); 

} 

} 
?> 

幫助appreciated.John。

回答

0
var option1 = new Option("InstitutionName1","InsitutionValue1"); 
var option2 = new Option("InstitutionName2","InsitutionValue2"); 
document.myForm.institution.options.length = 0; 
document.myForm.institution.options[0] = option0; 
document.myForm.institution.options[1] = option1; 

這是它正常完成的方式。在這個特定的情況下,你可能想要有一個for循環或東西或jQuery的每個(..)。

0

@約翰

你可以把下面的代碼snnipet在script標籤的末尾:

for (item in json.institution) { 
     $('select[name="institution"]').html('').append('<option value="' + json.institution[item].value + '">' + json.institution[item].text + '</option>'); 
} 

其中:

json.institution是將一起返回一個命名的數組其他表單字段由您的.php腳本。

json.institution[item].value是每個選項的值。

json.institution[item].text是每個選項的文本。

.html('')代碼用於清除以前加載的選擇選項。