SQL и PHP - отправить форму с идентификатором в URL (в WordPress) - PullRequest
0 голосов
/ 03 августа 2010

Я уже некоторое время пытаюсь найти лучший способ сделать это, но не могу понять.

У меня есть простой выпадающий список, который автоматически заполняется на основе запроса SQL. Когда вы нажимаете «поиск», он мне нужен, чтобы перейти на страницу с расширением URL ?id=x, где x - идентификатор выбранного параметра.

$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 для извлечения этого скрытого поля, но я бы лучше сделал это на одной странице.

Я достиг этого раньше из 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 Ответ

3 голосов
/ 03 августа 2010

Вы должны поместить что угодно в атрибут 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, а выбранный option имеет 1 в атрибуте value.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...