代码之家  ›  专栏  ›  技术社区  ›  Adam Tomat

SQL和PHP-在URL中使用ID的提交表单(在WordPress中)

  •  0
  • Adam Tomat  · 技术社区  · 14 年前

    一段时间以来,我一直在努力寻找最好的方法,但一直找不到。

    我有一个简单的下拉列表,它根据SQL查询自动填充。当你按“搜索”时,我需要它转到一个带有URL扩展名的页面。 ?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>
    

    我想我可能需要把它放到一个外部页面上,这个外部页面使用$\u post来拉这个隐藏字段,但我宁愿在一个页面上做。

    我以前在WordPress中使用过这样的工具:

    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 回复  |  直到 14 年前
        1
  •  3
  •   Martin Bean    14 年前

    你需要把任何东西放在 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 你的 select x 以及 选项 有选择的 1 在其 价值 属性。

    希望这有帮助。