Выбрать опции из базы данных и передать выбранную опцию в переменную PHP - PullRequest
0 голосов
/ 12 октября 2018

Фрагмент кода для заполнения параметров в HTML выберите из запроса к базе данных:

<?php
// Connect to the database
$mydb = new wpdb('***','***','***','***');

// run the query to fetch the options
$rows = $mydb->get_results("select distinct(Region) from tblusers order by 
Region asc;");
?>

<!-- Form -->
<form method='post' action='success.php'>
<b><h1>Stuur SMS aan Streek</h1></b>

<b>Kies Streek:</b>
<select id='txtReg' name='txtReg'></option>
<?php 
// populate the options
foreach ($rows as $row) { 
echo "<option value=$row->Id>$row->Region ? 'selected="selected"' : '' 
</option>";
} 
?>

</select>
<br/>

<b>Boodskap:</b>
<textarea id='txtMsg' name='txtMsg' rows=5 cols=65 style='width:50%;'> 
</textarea>
<br/>

<input type='reset' value='Kanselleer'> | <input class="button" 
type='submit' value='Stuur SMS aan Streek'>
</form>

Страница success.php, на которой должна отображаться выбранная опция:

<?php
$txtReg = $_POST['txtReg'];

echo $txtReg;

Все работает, кроме случаев, когда я выбираю опцию из выпадающего списка, как передать ее на страницу успеха, поскольку она не отображается, когда я пытаюсь отобразить переменную.

Ответы [ 5 ]

0 голосов
/ 12 октября 2018

В вашем коде 2 ошибки, вы не передаете значение в параметре и логика выбора равна ==, а не >

<?php
// Connect to the database
$mydb = new wpdb('***','***','***','***');
// run the query to fetch the options
$rows = $mydb->get_results("select distinct(Region) from tblusers order by Region `asc;"); `
?>
<!-- Form -->
<form method='post' action='success.php'>
<b><h1>Stuur SMS aan Streek</h1></b>
<b>Kies Streek:</b>
<select id='txtReg' name='txtReg'></option>
<?php 
// populate the options
foreach ($rows as $row) { 
echo "<option value='".$row->Id."' ".($row->Id==$row->Region) ? 'selected' : ''."></option>"; 
}
?>
</select>
<br/>
<b>Boodskap:</b>
<textarea id='txtMsg' name='txtMsg' rows=5 cols=65 style='width:50%;'> 
</textarea>
<br/>
<input type='reset' value='Kanselleer'> | <input class="button" type='submit' value='Stuur SMS aan Streek'> 
</form>
0 голосов
/ 12 октября 2018

У вас есть ошибка в вашем коде.Когда вы хотите, чтобы опция была выбрана, вы просто пишете атрибут «selected» следующим образом: <option value="myValue" selected></option> в данном случае вы назначаете «selected» значению опции;

Ваш код долженвыглядеть примерно так:

  <?php 
 // populate the options
   foreach ($rows as $row) { 
   echo "<option value='".$row->Id."' ";

   if($row->id == $row->Region) echo "selected";
   echo "> SomeOption"; // Close the option tag and add any text inside


   echo "</option>";
   } 
   ?>
0 голосов
/ 12 октября 2018

У вас есть некоторые проблемы с синтаксисом, связанные с вашим тегом выбора и сгенерированным тегами параметров.

Обновлено

<?php
// Connect to the database
$mydb = new wpdb('***','***','***','***');

$query = "SELECT distinct(Region) 
FROM tblusers
Order By 
Region ASC";    

$rows = $mydb->get_results($query);

var_dump($rows);

?>

<!-- Form -->
<form method='post' action='success.php'>

  <b><h1>Stuur SMS aan Streek</h1></b>

  <b>Kies Streek:</b>
  <select id='txtReg' name='txtReg'>
    <?php 
    // populate the options
    foreach ($rows as $row) { 
    echo '<option value="' . $row->Region . '">' . $row->Region . '</option>';
    } 
    ?>
  </select><br/>

  <b>Boodskap:</b>
  <textarea id='txtMsg' name='txtMsg' rows=5 cols=65 style='width:50%;'></textarea><br/>

  <input type='reset' value='Kanselleer'> | <input class="button" type='submit' value='Stuur SMS aan Streek'>

</form> 

Другая проблема, которая может у вас возникатьэто ваш запросПохоже, у вас может не быть поля идентификатора, возвращаемого в ваших данных.Если это поле отсутствует в вашем запросе, тогда значение в вашем теге параметров будет пустым.

Решение может состоять в том, чтобы изменить $row->Id на $row->Region в значении тега параметра.

Это должно привести вас в правильном направлении.

0 голосов
/ 12 октября 2018

Попробуйте изменить это,

echo "<option value=$row->Id>$row->Region ? 'selected="selected"' : ''

на

$value = 'whatever your value';

echo "<option value='". $value ."' />

Я вижу, что в вашем значении отсутствуют кавычки.

0 голосов
/ 12 октября 2018

Вы можете добавить скрытое поле для магазина выбранной опции.Обновите значение этого скрытого поля при изменении параметра с помощью jquery или javascript.

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