2012-03-20 60 views
0

我有一個用戶名,地址和電子郵件的形式。 名單列表來自數據庫,我需要做的是,當我選擇用戶名,地址和電子郵件信息填充其他2個字段(我有另一個字段,但我只需要填寫) 我'使用PHP與MySQL數據庫如何填寫表格字段根據下拉列表

+0

[你有什麼試過?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – j08691 2012-03-20 19:59:50

+0

沒什麼,因爲我看到的每個例子都預先填充了一個se cond下拉,我不需要這個 – Sebastian 2012-03-20 20:03:13

+0

使用jQuery和ajax。在下拉菜單中設置一個更改事件,從php腳本獲取信息並填充字段......這應該讓您開始......一旦您編寫代碼,如果您仍有問題,請回來告訴我們。 ..我們很樂意幫助... – keithhatfield 2012-03-20 20:19:36

回答

0

顯然,你將不得不修改這個來匹配你的元素ID和這樣的,但這對我很有用。

這裏是你的HTML:

<script type="text/javascript"> 
function grabInfo(str) 
{ 
if (str=="") 
    { 
    document.getElementById("contentDiv").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("contentDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","getinfo.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 

<select name="users" onchange="grabInfo(this.value)"> 
    <option value="" selected="selected">Select a person:</option> 
    <option value="1">Person A</option> 
    <option value="2">Person B</option> 
    </select> 

    <div id="contentDiv"> 

    </div> 

和後端PHP(getinfo.php):

<?php 
$q=$_GET["q"]; 

//MySQL connection string 


$sql="SELECT * FROM <table> WHERE <parameter> = '".$q."'"; 

$result = mysql_query($sql); 


while($row = mysql_fetch_array($result)) 
    { 
    echo '<input type="text" id="address" value="' . $row['address'] . '">'; 
    echo '<input type="text" id="email" value="' . $row['email'] . '">'; 
    } 
?> 

contentDiv會裏顯示兩個文本框。 getinfo.php將是數據庫實際操作發生的PHP。

+0

完美!謝謝! – Sebastian 2012-03-20 21:09:22

1

這可能不是最優的 - 事實上,我還不能肯定它的作品,因爲我沒有這個測試在所有的,但我敢肯定你會算出它,如果它不工作:

假設你的表單有一個name =「personInfo」,名字下拉有name =「personName」,地址是一個名爲「address」的文本輸入字段。

在PERSONNAME選擇標記添加

onChange="updateValues()" 

然後你需要一些JavaScript,將是這樣的:

function updateValue() { 
var addresses = new Array(); 
<?php 
//add some php code to populate the java array. Something like 
for ($i=0; $i<$numAddresses; $i++) { 
    echo 'addresses['.$i.'] ='.$addressFromDB[$i].';'; 
} 
?> 
document.personInfo.address.value = addresses[document.personInfo.personName.selectedIndex]; 

} 

,並重復同樣的事的電子郵件

相關問題