1

これが可能かどうか考えているだけです

これは....のコードです。

    <?php
    $temp1 = 'anyvalue1';
    $temp2 = 'anyvalue2';
    ?>
<form action='next.php' method='post'>
    <select name='dropdown'>
    <option value='any'>item1</option>
    <option value='anyone'>item2</option>
    <option value='<? $dual = array("$temp1","temp2"); ?>'>item3</option>
    </select>
<input type='submit'>
</form>

上部にitem3あるように、コード行は可能でしたか? その後、このSQLコードでそれを使用します(このSQLコードは上記のコードの下にのみあります)

$keyword = $_POST['dropdown'];
$res = mysql_query("select * from teybol where field1='$keyword[0]' and field2='keyword[1]'");

その後、の結果によってレコードを生成します$res

4

2 に答える 2

0

HTMLoptionの値は、Javascript または PHP によって解釈される場合、常に文字列です。ただし、後で配列に変換できるようにフォーマットすることはできます。

<option value='["$temp1","$temp2"]'>item3</option>

また

<option value='{"$temp1","$temp2"}'>item3</option>
于 2012-11-16T03:07:00.577 に答える
0

いいえ、その方法ではできません。「デュアル」オプションの文字列表現を見つける必要があります。

<option value='<?php echo htmlspecialchars("$temp1-$temp2") ?>'>item 3</option>

$temp1これは、またはのどちらにもダッシュが存在しないことを前提としています。$temp2

次に、クエリを実行すると:

$keywords = array_map('mysql_real_escape_string', explode('-', $_POST['dropdown']));
$sql = "select * from teybol where field1='$keywords[0]'";
if (count($keywords) > 1) {
    $sql .= " and field2='keywords[1]'";
}
// use $sql to perform the query

文字列表現にjson_encode()JSON形式を使用することもできます。などの区切り文字を確実に使用できないjson_decode()場合に役立ちます。-

SQL で使用している変数はエスケープする必要があります。ここでは、 を使用して各キーワードarray_map()に適用しています。mysql_real_escape_string

注 2 PDO または mysqli に移行し、代わりに準備済みステートメントを使用する必要があります。

于 2012-11-16T03:10:59.317 に答える