SQL和PHP - 在URL中提交带有ID的表单(在wordpress中)

时间:2010-08-03 10:23:41

标签: php sql wordpress forms

我一直试图找到最好的方法暂时做到这一点,但无法弄明白。

我有一个简单的下拉列表,它根据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 :(任何建议?

1 个答案:

答案 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 1value属性中。

希望这有帮助。