Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php foreach中选择下拉值_Php_Html - Fatal编程技术网

在php foreach中选择下拉值

在php foreach中选择下拉值,php,html,Php,Html,我用php生成了一个下拉列表 <select name="diploma" id="diploma-<? echo $edu['id']; ?>"> <? foreach($diplomas->result_array() as $diploma) { echo "<option value=".$diploma['id'].">".$diploma['name']."</op

我用php生成了一个下拉列表

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
                    <? foreach($diplomas->result_array() as $diploma) {
          echo "<option    value=".$diploma['id'].">".$diploma['name']."</option>";
                            } ?>
</select>


我还有
,它是数据库中的一个值。我想将
selected=“selected”
添加到下拉列表中与此值匹配的选项中。我应该只使用jquery吗?执行此操作的最佳方法是什么?

您可以这样检查循环内部:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? 
    foreach($diplomas->result_array() as $diploma) 
        {
            if($edu['diploma']==$diploma['name'])
            {
                echo "<option selected ='selected' value=".$diploma['id'].">".$diploma['name']."</option>";
            }
            else
            {
                echo "<option value=".$diploma['id'].">".$diploma['name']."</option>";
            }
        } 
    ?>
</select>

您可以像这样检查循环内部:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? 
    foreach($diplomas->result_array() as $diploma) 
        {
            if($edu['diploma']==$diploma['name'])
            {
                echo "<option selected ='selected' value=".$diploma['id'].">".$diploma['name']."</option>";
            }
            else
            {
                echo "<option value=".$diploma['id'].">".$diploma['name']."</option>";
            }
        } 
    ?>
</select>
使用相同的PHP代码:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? foreach($diplomas->result_array() as $diploma) {
        echo "<option value=".$diploma['id'];
        if ($edu['diploma'] == $diploma['name']) {
            echo 'selected="selected"';
        }
        echo ">".$diploma['name']."</option>";
    } ?>
</select>

代码将每个选项的
$diplicial['name']
与您的
$edu['diplicial']
变量进行比较,如果它们相同,则输出
selected=“selected”

根据
$edu['diplificate']
的内容,您需要将其与一件事或另一件事进行比较。如果
$edu['diplificate']
包含
id
则将
$diplificate['name']
更改为
$diplificate['id']

如果
$edu['diplificate']
包含diplificate对象本身,则需要通过以下方式进行比较:
$edu['diplificate']['id']==$diplificate['id']

使用相同的PHP代码:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <? foreach($diplomas->result_array() as $diploma) {
        echo "<option value=".$diploma['id'];
        if ($edu['diploma'] == $diploma['name']) {
            echo 'selected="selected"';
        }
        echo ">".$diploma['name']."</option>";
    } ?>
</select>

代码将每个选项的
$diplicial['name']
与您的
$edu['diplicial']
变量进行比较,如果它们相同,则输出
selected=“selected”

根据
$edu['diplificate']
的内容,您需要将其与一件事或另一件事进行比较。如果
$edu['diplificate']
包含
id
则将
$diplificate['name']
更改为
$diplificate['id']


如果
$edu['diplificate']
包含diplificate对象本身,您需要这样比较:
$edu['diplificate']['id']==$diplificate['id']

这就是我想到的:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <?php foreach ($diplomas->result_array() as $diploma) {
    //echo "<option value='{$diploma['id']}'>{$diploma['name']}</option>";
    echo "<option value='{$diploma['id']}";
    if ($edu['diploma'] === $diploma['name']) {
        echo " selected";
    }
    echo ">{$diploma['name']}</option>\n";
} ?>
</select>

这就是我想到的:

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
    <?php foreach ($diplomas->result_array() as $diploma) {
    //echo "<option value='{$diploma['id']}'>{$diploma['name']}</option>";
    echo "<option value='{$diploma['id']}";
    if ($edu['diploma'] === $diploma['name']) {
        echo " selected";
    }
    echo ">{$diploma['name']}</option>\n";
} ?>
</select>

在循环内执行检查,如果值匹配,则回显选定的属性。注意,我在测试中使用了a。



在循环内执行检查,如果值匹配,则回显选定的属性。注意,我在测试中使用了a。

如果我没弄错,试试这个

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
<?
$selected = $edu['diploma'];
foreach($diplomas->result_array() as $diploma) {
  if($diploma['name'] == $selected){
    echo '<option selected="selected" value="'.$diploma['id'].'">'.$diploma['name']."</option>";
  }else{
    echo '<option value="'.$diploma['id'].'">'.$diploma['name']."</option>";
  }
}
?>
</select>

如果我没弄错,试试这个

<select name="diploma" id="diploma-<? echo $edu['id']; ?>">
<?
$selected = $edu['diploma'];
foreach($diplomas->result_array() as $diploma) {
  if($diploma['name'] == $selected){
    echo '<option selected="selected" value="'.$diploma['id'].'">'.$diploma['name']."</option>";
  }else{
    echo '<option value="'.$diploma['id'].'">'.$diploma['name']."</option>";
  }
}
?>
</select>