-1

別のファイルで生成されるドロップダウンメニューがあります。これはwhileループで生成され、静的な値を1つ追加したいと思います(契約の選択)。

現在、ドロップダウンメニューは次のようになっています。

1234
4321
2323
3232

そして、私はそれをこのようにしたいと思います:

Select contracr
1234
4321
2323
3232

これがindex.phpの私のコードです:

<select id="text2" name="text2">

</select>

そして、これがprocess.php(アイテムが生成される場所)の私のコードです:

<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
while($row = mysql_fetch_assoc($run)) {
    echo "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>

Ajaxコード:

<script>
$("select#select2").change(function(){
    $.ajax({
        type: "GET",
        url: "process.php",
        data: "selected_key=" + $(this).val(),
        success: function(result) {
            $("select#text2").html(result);
        }
    });
});
</script>
4

4 に答える 4

3

あなたはこれを考えすぎていると思います。

<select>データベースから他のすべての値を追加する前に、-つまり、PHPが生成するものではなく、リテラル値にオプションを追加するだけです。「0」や「NotSelected」などの値を指定してから、検証ルーチンでそれを確認します。

ああ、そして無関係な問題として、これをしないでください:

$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";

あなたはSQLインジェクションに自分自身を開いています。それが何であるかわからない場合は、調べてください。これには、準備済み/パラメーター化されたクエリを使用する必要があります。PDO拡張機能とmysqli拡張機能の両方にこの機能があるため、最新バージョンで非推奨になっているmysql拡張機能の代わりにこれらのいずれかを使用する必要があります(つまり、「これはすぐに言語から削除されるため、使用を中止してください」)。 PHPの。


アップデート:

要素の新しいコンテンツを取得するためにAJAXリクエストを使用してHTMLを直接更新しているという事実に基づいて、AJAXリクエストで呼び出すスクリプトの一部として言及したアイテムを<select>移動する必要があります。<option>

foreach具体的には、ループの直前に実行する必要があります。

<?php
$selectedKey = $_GET['selected_key'];

// DO SOME VALIDATION ON $selectedKey here
// Remember what I said about SQL injection and using mysqli/PDO

$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
echo "<option value='NotSelected'>Select Contract</option>";
while($row = mysql_fetch_assoc($run)) {
    echo "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>
于 2013-01-03T08:10:15.040 に答える
1
<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);

echo "<option value='0'>Select Contractor</option>"; //Simply add this

while($row = mysql_fetch_assoc($run)) {
    echo "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>
于 2013-01-03T08:07:41.877 に答える
1

これを試して..

<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
$str = "<option value='0'>Select anyone</option>";
while($row = mysql_fetch_assoc($run)) {
    $str .= "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
echo $str;
?>

これは静的オプションを追加できます

于 2013-01-03T08:09:12.993 に答える
-2
please used this code......
<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);

$str = "<option value='0'>Select Contractor</option>"; //Simply add this

while($row = mysql_fetch_assoc($run)) {
    $str .= "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>


echo $str variable into your select box like this:-


<select id="text2" name="text2">
<?php echo $str;?>
</select>
于 2013-01-03T08:12:04.743 に答える