从 sql server 获取选定的值到 php 中的下拉列表

Posted

技术标签:

【中文标题】从 sql server 获取选定的值到 php 中的下拉列表【英文标题】:Get selected value from sql server to dropdown in php 【发布时间】:2019-07-04 18:50:34 【问题描述】:

我想从 sql server 中获取值到 php 中的下拉菜单作为选定选项。首先,我在 db 上有空值,当我在下拉列表中选择值时,单击提交按钮时它将在 db 上更新。现在,我想将存储自 db 的数据设置为每个下拉列表中的选定选项。如果我点击提交按钮,我可以选择再次更新它。我试图在选项标签中添加一个 if 条件,但出现错误。

   <?php

        foreach ($records as $key => $data) 
             $dates[] = $data[0];
             $dates1[] = $data[3];
             $dates2[] = $data[2];
             $circuit[] = $data[1];

             $circuitNo[] = $FeederData-> getCircuitNumber($data[1]);

             $parsed = date_parse($key[2]);
             $seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];


             $tripdate[] = date("m/d/Y", strtotime($data[0]) - $seconds);
             $triptime[] = date("H:i:s", strtotime($data[3]) - strtotime($data[2]));

             $selectedCause[] = $data[4];
             $selectedWeather[] = $data[5];
             $selectedDevice[] = $data[6];
             $selectedEquipment[] = $data[7];

           


     for ($i=0; $i < count($dates); $i++) 
           echo " <tr>
             <form method='POST' name='forms1' class='form-inline'>
                  <input type='hidden' name='selectedMonth' value='$date1'>
                  <input type='hidden' name='selectedYear' value='$year'>
                  <td><input type='hidden' name='tripdate[]' value='$tripdate[$i]'/> $tripdate[$i] </td>
                  <td><input type='text' name='description1[]' class='form-control'/></td>
                  <td><input type='hidden' name='circuit[]' value='$circuit[$i]'>
                      <input type='hidden' name='tripdate1[]' value='$circuitNo[$i]'/> $circuitNo[$i] </td>
                  <td><input type='hidden' name='triptime[]' value='$triptime[$i]'/>$triptime[$i]</td>
                  <td><input type='hidden' name='dates[]' value='$dates[$i]'/>$dates[$i]</td>
                   <td><input type='hidden' name='dates1[]' value='$dates1[$i]'/>$dates1[$i]</td>
                   <td><input type='hidden' name='dates2[]' value='$dates2[$i]'/>$dates2[$i]</td>
                   <td><input type='text' name='description2[]' class='form-control'></td>


          <td>           
              <div class='form-group'>
                <select class='form-control' name='InterruptionCause[]'>
                   <option value='001'" if ($selectedCause[$i] == '1') 
                                                    echo "selected";
                                                  "> 001 </option>

                    <option value='002'>002 </option>
                    <option value='003'>003 </option>
                    <option value='004'>004 </option>
                 </select>
         </div>
      </td>                 
 
   ?>

    <input type='submit' class='btn btn-success' name='interruptionreport' value='Submit'> 
 </form>   
 </tbody>
 </table>

【问题讨论】:

“但我得到一个错误” - 这是一个非常无益的陈述。逐字引用错误消息! 【参考方案1】:

您的尝试会产生语法错误。您只需在没有 ; 的情况下结束您的 echo 语句。

echo "
<div class='form-group'>
    <select class='form-control' name='InterruptionCause[]'>
        <option value='001' " . $selectedCause[$i] == '1' ? "selected" : "" . "> 001 </option>
        <option value='002' " . $selectedCause[$i] == '2' ? "selected" : "" . ">002 </option>
        <option value='003' " . $selectedCause[$i] == '3' ? "selected" : "" . ">003 </option>
        <option value='004' " . $selectedCause[$i] == '4' ? "selected" : "" . ">004 </option>
    </select>
</div>";

这将为每个选项检查selectedCause[$i] 是否等于您的选项的值。如果是,则打印“selected”,否则不打印(空字符串)。

【讨论】:

嗨。它没有用。它重复打印“> 004”。所以不会有if条件? 这利用了三元运算符。 $x == $y ? codeA : codeB 只是 if ($x == $y) codeA else codeB 的简写 我明白了。但它没有用。选择选项消失并重复打印“>004”:(

以上是关于从 sql server 获取选定的值到 php 中的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 php 中从表单提交的组合框中获取选定的值

动态创建单选按钮并分配选定的值 PHP

使用 sql server 从数据库中选择值到另一个

从 ASP 列表框中获取所有选定的值

SQL Server:每月循环一次值到整个月

烧瓶从自动完成传递选定的值并执行 SQL 查询以打印结果