【问题标题】:PHP POST selection displayPHP POST 选择显示
【发布时间】:2013-09-07 20:53:29
【问题描述】:

我有这段代码,我遇到的问题是,一旦我选择了一个选项并保存它,下次就不会记得选择了。但是帖子已经在数据库中注册了正确的值。是否有引起您注意的语法错误?感谢您的帮助。

平台:PHP,SQLite

<tr>
<?php 
//location
?>
<td class='tdt' class='tdt'><?php te("Department");?>:</td>
<td>
<select id='locations' name='locations'>
<option value=''><?php te("Select");?></option>
<?php 
    foreach ($locations  as $key=>$location ) {
        $dbid=$location['id']; 
        $itype=$location['name'];
        $s="";
        if (($locations=="$dbid")) $s=" SELECTED "; 
            echo "    <option $s value='$dbid'>$itype</option>\n";
    }
?>
</select>

</td>
</tr>

<tr>

【问题讨论】:

  • 等等..什么?您正在检查$locations(这是一个您正在迭代的数组)是否与$dbid 相同,$locations 的子数组中的一个键?它从不匹配。 $locations[0]['id']永远不会$locations相同?
  • 您好,感谢您的回复。您将如何解决这个问题。谢谢
  • 对于初学者来说,你没有在这段代码中的任何地方检查$_POST,所以显然它不关心 POST 是什么?
  • 我不确定如何将 $_POST 添加到组合中。我尝试了不同的变体。但结果相同。再次感谢
  • if ($_POST["locations"] == $dbid) $s = ' selected="SELECTED"'; ?

标签: php post


【解决方案1】:

你可以试试这个(假设你已经准备好了$locations数组)

<select id='locations' name='locations'>
    <option value=''><?php te("Select");?></option>
    <?php 
        foreach ($locations  as $key => $location ) {
            $s = $_POST['locations'] == $location['id'] ? 'selected' : '';
            echo "<option $s value='" . $location['id'] . "'>" . $location['name'] . "</option>";
        }
    ?>
</select>

【讨论】:

  • 嗨,Sheikh,感谢您帮助我。您觉得这个数组有用吗? $locations=$r['locations'];
  • 我假设你有一个像$locations = array('1'=&gt;'loc1', '2'=&gt;'loc2') 这样的数组。
  • 我有一个表,其中包含名为“locations (id,name)”的所有位置。一旦用户做出选择,它将在位置下的员工表中注册为 INT。INT 绑定到我在开头提到的桌子。谢谢谢赫
  • 然后你必须从 db 中提取数据(位置)并将其提供给foreach 循环,你现在正在做吗?
  • yes.Exactly.But I'm not sure how to setup a array for that.this my SQL query $sql="SELECT * FROM locations order by name"; $sth=$dbh->查询($sql); $locations=$sth->fetchAll(PDO::FETCH_ASSOC);谢谢
猜你喜欢
  • 2016-02-18
  • 2013-02-24
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
  • 2015-10-08
  • 2014-11-22
相关资源
最近更新 更多