我一直试图找到最好的方法暂时做到这一点,但无法弄明白。
我有一个简单的下拉列表,它根据SQL查询自动填充。当您按“搜索”时,我需要它转到包含网址扩展名?id=x
的网页,其中x是他们选择的选项的ID。
$locations = $wpdb->get_results( $wpdb->prepare(
"SELECT * FROM wp_places_index WHERE visible='Y' ORDER BY place_name ASC") );
?>
<form id="find-buses-form" method="post" action="places_index.php">
<select class="default-value" type="text" name="from">
<option>Please select...</option>
<?php
foreach($locations as $location)
{
echo "<option>".$location->place_name."</option>";
// maybe this? echo "<input type=\"hidden\" name=\"id\">".$location->id."</input>";
}
?>
</select>
<input type="submit" name="submit" value="Show me" />
</form>
我想我可能需要将它转到使用$ _POST来拉动该隐藏字段的外部页面,但我宁愿在一个页面上执行此操作。
我在使用这样的东西之前就已经实现了这个目标:
while ($row = mysql_fetch_array($result))
{
$picture = $row['Image'];
if($picture == ""){
$picture= "thumbnails/no-image-small.png";
}
$product_ID = $row["ProductID"];
但是wordpress不喜欢mysql_fetch_array
:(任何建议?
答案 0 :(得分:3)
您需要在value
标记的option
属性中添加任何内容。例如:
<?php
$locations = $wpdb->get_results( $wpdb->prepare(
"SELECT * FROM wp_places_index WHERE visible='Y' ORDER BY place_name ASC") );
?>
<form action="places_index.php" method="get">
<select name="x">
<?php foreach ($locations as $location): ?>
<option value="<?php echo $location->id; ?>"><?php echo $location->place_name; ?></option>
<?php endforeach; ?>
</select>
</form>
提交后,表单将转到http://example.com/places_index.php?x=1
,假设name
的{{1}}为select
,而x
已选中option
1
在value
属性中。
希望这有帮助。