我只是在想这是否可能
这是......的代码。
<?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
答案 0 :(得分:0)
当由Javascript或PHP解释时,HTML option
的值始终是字符串。但是,您可以将其格式化,以便以后可以将其转换为数组:
<option value='["$temp1","$temp2"]'>item3</option>
或
<option value='{"$temp1","$temp2"}'>item3</option>
答案 1 :(得分: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并使用预准备语句。