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

当被 Javascript 或 PHP 解释时,HTMLoption的值总是字符串。但是,您可以将其格式化为以后可以将其转换为数组:

<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 格式 - 使用json_encode()json_decode()- 来表示字符串;-它在不能可靠使用分隔符的情况下有所帮助。

注意您应该转义您在 SQL 中使用的变量;我在这里通过array_map()应用于mysql_real_escape_string每个关键字来做到这一点。

注意 2您应该移至 PDO 或 mysqli 并改用准备好的语句。

于 2012-11-16T03:10:59.317 回答