2012-04-29 28 views
1

私はテーブルbusbus_id, bus_noのテーブルを持っています。ドロップダウンで選択した項目を設定する方法PHP

私はマルチ選択で複数のエコーを試みましたが、以下のコードを試しましたが、その繰り返しはbus_noでした。

すべてのバスをエコーし​​て、選択したバスの隣にselectedを表示してください。

<form name="editstudent" method="get" action="testmulti.php"> 
<select name="numBus[]" multiple> 

<?php 
$selBus=mysql_query("SELECT * FROM najdsy_bus order by bus_id"); 
while ($rowBus=mysql_fetch_array($selBus)) { 
    foreach ($numBus as $key=> $value) { 
     if ($rowBus['bus_id']==$value) { 
      $SelectedBus = "selected"; 
     } else { 
      $SelectedBus = ""; 
     } 
     echo '<option value="'.$rowBus['bus_id'].'"'.$SelectedBus.'>'.$rowBus['bus_no'].' '.$SelectedBus.'</option>'; 
    } 
} 
?> 
</select> 
<br/> 
<input type="submit" value="test"> 
</form> 
+1

古くからのmysql_ *関数を使って新しいコードを書き留めてください。彼らはもはや維持されておらず、コミュニティは[非推奨プロセス](http://news.php.net/php.internals/53799)を始めました。代わりに[prepared statement](http://en.wikipedia.org/wiki/Prepared_statement)について学び、[PDO](http://php.net/pdo)または[MySQLi](http:// php.net/mysql)。あなたが覚えているのであれば、[ここ](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)はPDO関連の非常に良いチュートリアルです。 –

+0

入手している出力と必要な出力の例を表示します。 – Cylindric

答えて

2

$rowBus['bus_no']にして$rowBus[bus_id]この変化の理由

$rowBus['bus_id']$rowBus[bus_no]を交換$ rowBusこの Array ([bus_id] => value)ような構造を持つ配列であるということです。あなたのキーが文字列であるのを見て、それにアクセスするためには、PHPがそれを探すように "伝える"必要があります。

文字列は、"some_string"または'some_string'で表すことができます。キーは、パフォーマンスを向上させるために特別な書式設定を行わないテキストなので、"の代わりに'を使用することをお勧めします。

1

foreachの中にecho '<option value="'...を入れないでください。これを次のように変更してください:

while ($rowBus=mysql_fetch_array($selBus)) { 
    $SelectedBus=""; 
    foreach ($numBus as $key => $value){ 
    if ($rowBus["bus_id"]==$value){ 
     $SelectedBus="selected"; 
    } 
    } 
    echo '<option value="'.$rowBus["bus_id"].'"'.$SelectedBus.'>' 
    .$rowBus["bus_no"].' '.$SelectedBus.'</option>'; 
} 
+0

こんにちは、どうもありがとうございました – user1364008

+0

私の答えは受け入れてください。 –

+0

あなたは単に「選択」してはいけません。 '' – Cylindric

関連する問題