从数据库获取select选项并将所选选项传递给php变量

krugob8w  于 2021-06-18  发布在  Mysql
关注(0)|答案(5)|浏览(334)

用于在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;

所有的工作,除了当我从下拉列表中选择一个选项时,我如何将它传递到成功页面,因为当我尝试回显变量时它不显示。

ybzsozfc

ybzsozfc1#

可以为“存储选定项”选项添加隐藏字段。使用jquery或javascript在更改选项时更新隐藏字段值。

bvpmtnay

bvpmtnay2#

你的代码有错误。当你想选择一个选项时,你只需要写一个属性“selected”如下: <option value="myValue" selected></option> 在这种情况下,您所做的是,您指定“选定”选项的价值;
您的代码应该如下所示:

<?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>";
   } 
   ?>
k4emjkb1

k4emjkb13#

您有一些与select标记以及如何生成option标记相关的语法问题。
更新

<?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>

您可能遇到的另一个问题是查询。看起来您的数据中可能没有返回id字段。如果该字段不在查询中,那么options标记中的值将为空。
一个解决办法可能是改变 $row->Id$row->Region 在选项标记的值中。
这会让你朝着正确的方向前进。

ltskdhd1

ltskdhd14#

您的代码中有2个错误,您没有在选项中传递值,选择的逻辑是 == 不是 > ```

0wi1tuuw

0wi1tuuw5#

试着改变这个, echo "<option value=$row->Id>$row->Region ? 'selected="selected"' : ''

$value = 'whatever your value';

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

我能看到的是你的价值中缺少引号。

相关问题