2012-03-20 15 views
0

私はユーザー名、住所、電子メールのフォームを持っています。 名前のリストがデータベースから来ているので、ユーザー名を選択すると、アドレスと電子メール情報が他の2つのフィールドに入力されます(別のフィールドがありますが、そのフィールドのみが必要です) mysqlデータベースでphpを使用していますドロップダウンに応じてフォームフィールドを入力する方法

+0

[何を試してみましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – j08691

+0

すべての例では、 condドロップダウン、私はそれを必要としません – Sebastian

+0

jQueryとajaxを使用します。ドロップダウンで、PHPスクリプトから情報を取得し、フィールドに値を設定する変更イベントを設定します。これで、開始されるはずです...コードを書き込んだら、問題がまだ残っていれば、私たちに知らせてください。 ..私たちは助けてうれしいでしょう... – keithhatfield

答えて

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):2つのテキストボックスが表示される場所

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

1

これは最適ではないかもしれない - 実際に私は私がすべてでこれをテストしていないんだけど、私はそれが動作しない場合は、あなたがそれを把握すると確信しているので、それが動作ポジティブないよ:

と仮定すると、フォームにはname = "personInfo"、名前のドロップダウンにはname = "personName"、アドレスには "address"という名前のテキスト入力フィールドがあります。

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

} 

やメール

のためのものと同じ種類のを繰り返します。PERSONNAME selectタグで

は、その後、あなたがこのようなものになりますいくつかのjavascriptが必要になります

onChange="updateValues()" 

を追加します

関連する問題