2011-09-15 18 views
1

spusername、splocation、sprecordの3つのテーブルを持つデータベースを作成しました。 spusernameにはid、splocation_id、lastname、firstnameがあります。 id、lastname、firstnameをデータベースから取得したプルダウンメニューを持つことができ、プルダウン内ではすべての名前のリストが姓、名字のみで表示されます。一度私は人を選択すると、私はそれに訓練の種類を持っている別のドロップダウンがあります。私が提出したとき、それは人物IDと訓練記録を持つ別のテーブルにレコードを生成します。だから、私が検索をすると、その人のユーザと訓練記録がプルアップされます。私は既に.phpに姓、名、splocation_idを新しいユーザに送信する投稿ページを作成しました。私が望むことをする検索ですが、データベースから生成された値を持つプルダウンを行うデータ入力は一度も行っていません。mysqlデータベースは、html/phpに既に入力されているデータを使用してドロップダウンメニューを作成します

EDITコード:Vegardのコーディングの助けを借りて、私はこれを手に入れましたが、今ではいくつかの試行錯誤の後にうまくいきます。ありがとうございました!

コード:

<?php 
    if (isset($_REQUEST['Submit'])) { 
    $sql = "INSERT INTO $db_table(spusername_id,sptraining_id) values ('".mysql_real_escape_string(stripslashes($_REQUEST['spusername_id']))."','".mysql_real_escape_string(stripslashes($_REQUEST['sptraining_id']))."')"; 
    if($result = mysql_query($sql ,$db)) { 
    echo '<h1>Thank you</h1>Your information has been entered into the database<br><br>'; 
    } else { 
    echo "ERROR: ".mysql_error(); 
    } 
    } else { 
?> 
<h1>Add Training Information To Database</h1><hr> 
<br><br> 
<form method="post" action=""> 
<select name="spusername_id"> 
    <option value="default">Select Employee</option> 
<?php 
    include("connectspusers.php"); /*file where you have stored your DB conn. settings*/ 
    $result = mysql_query('SELECT id, lastname, firstname FROM spusername ORDER BY lastname ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) { 
     echo '<option value="' . $row['id'] . ' ' . $row['lastname'] . ' ' . $row['firstname'] . '">' . $row['lastname'] . ', ' . $row['firstname'] . '</option>'; 
    } 
?> 
</select> 

<select name="sptraining_id"> 
    <option value="default">Select Training</option> 
<?php 
    include("connectsptraining.php"); /*file where you have stored your DB conn. settings*/ 
    $result = mysql_query('SELECT id, trainingtype, level FROM sptraining ORDER BY level ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) { 
     echo '<option value="' . $row['id'] . ' ' . $row['trainingtype'] . ' ' . $row['level'] . '">' . $row['trainingtype'] . ' - ' . $row['level'] . '</option>'; 
    } 
?> 
</select> 
<br><br> 
<input type="submit" name="Submit" value="Submit"> 
</form> 
<?php 
} 
?> 
+0

ここで完了したタスクのようだあなたはあなたの選択のループで

htmlentities($row['lastname'], ENT_QUOTES)

を使用してこの問題を解決することができます。私たちはどこにいらっしゃいましたか? –

答えて

0

これは何か?

<select name="pulldown1"> 
    <option value="default">Choose an option</option> 
    <?php 
    include("connect.php"); /*file where you have stored your DB conn. settings*/ 
    $result = mysql_query('SELECT id, lastname, firstname FROM spusername ORDER BY firstname ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) { 
    echo '<option value="' . htmlentities($row['id'], ENT_QUOTES) . ' ' . htmlentities($row['lastname'], ENT_QUOTES) . ' ' . htmlentities($row['firstname'], ENT_QUOTES) . '">' . htmlentities($row['lastname'], ENT_QUOTES) . ', ' . htmlentities($row['firstname'], ENT_QUOTES) . '</option>'; 
    } 
    ?> 
</select> 

<select name="pulldown2"> 
    <option value="default">Choose and option</option> 
    <?php 

    $result = mysql_query('SELECT traingtype FROM trainingtable ORDER BY trainingname ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) { 
     echo '<option value="' . $row['trainingtype'] . '">' . $row['trainingtype'] . '" "' . $row['lastname'] . '</option>'; 
    } 
    ?> 
</select> 

これは、最初のドロップダウンが、コンマ+スペースで区切られたユーザ直前に入ってとファーストネームを一覧表示し、第二は、トレーニングの種類を一覧表示にする2つのドロップダウンメニューになります。 IDフィールドは、変数を介してのみ送信されますが、ユーザーには表示されません。

ちょうど爆発使用、pulldown1に変数から値を引っ張っ:それは微調整が必​​要になる場合がありますので、

$userdetails = $_POST['pulldown1']; 
$values = explode(" " $userdetails); 
$ID = $values[0]; 
$lastname = $values[1]; 
$firstname = $values[2]; 

は、コードをテストしていない、とofcourseのあなたは、実際に対応する変数名を変更する必要がありますdb rownames。

編集:コードでは、$ row2ではなく$ rowを使用する必要があります。第二に

、代わりにこの:

<option value='{$id}'>{$lastname},{$firstname}</option> 

使用この:

<option value="' . $row['id'] . '">' . $row['lastname'] . ', ' . $row['firstname'] . '</option> 
0

あなたは、データベースからのデータと、ループ内の選択を構築します。

MySQLでの例では(テストしていない):

$query = "select id, lastname, firstname from spusername"; 
$result = mysql_query($query); 

    echo "<select>"; 

    while($row = mysql_fetch_array($result)){ 
    echo "<option value='".$row['id']."'>".$row['lastname']. " ". $row['firstname']."</option>"; 
    } 

    echo "</select>"; 

EDIT:(あなたの編集に対応)

をあなたのコードでは、あなたが$row2代わりの$row

0
<select name="id" size="1"> 
<?php 
    $result=mysql_query("select * from spusername;"); 
    while($user=mysql_fetch_array($result)) { 
    echo "<option value=\"".$user['id']."\">".$user['lastname'].", ".$user['firstname']."</option>"; 
?> 
</select> 

に行くを使用します常にユーザーの参照として "id"を使用し、getの代わりに投稿を使用してリクエストを送信します(ユーザーのブラウザのURLをきれいに保ちます)。

0

ベガードのソリューションにジャスト補遺:

単一引用符は姓と少しトリッキーなことができます。それは本当にあなたのデータベースにどのようにデータを格納しているかによって異なります。

O'LearyやO'Reillyの姓がある場合は、名前に選択ループを作成するときに、結果が切り捨てられることがあります。試してみる。

関連する問題