根据数据库值更改选择框值

时间:2013-06-04 05:38:24

标签: php mysql dom

我有一个选择框,其中有超过750个选项值。实际上它在HTML页面中是硬编码的。我需要它插入一个单独的表并使用foreach来填充它。请让我知道它可能吗?

<select name="PassNum"> 
<option value="12HTQD" <?php if($PassDetail['Mak']=="12HTQD"){?> selected="selected"<?php } ?> >12HTQD</option>
<option value="12HTMD" <?php if($PassDetail['Mak']=="12HTMD"){?>  selected="selected"<?php } ?> >12HTMD</option>
<option value="78HTMD" <?php if($PassDetail['Mak']=="78HTMD"){?>  selected="selected"<?php } ?> >78HTMD</option>

---------------------------------------
---------------------------------------
 </select>

如果我手动操作,这太费时间了。

更新

我想要从给定的HTML到DB的硬编码值。所以我可以从DB填充它..现在它的硬编码..

提前致谢。

5 个答案:

答案 0 :(得分:2)

请尝试这种方式..

function getTextBetweenTags($string, $tagname) {
    $pattern = "/<$tagname ?.*>(.*)<\/$tagname>/";
    preg_match_all($pattern, $string, $matches);
    return $matches["1"];
}


$str = '<option value="12HTQD" <?php if($PassDetail['Mak']=="12HTQD"){?> selected="selected"<?php     } ?> >12HTQD</option>
<option value="12HTMD" <?php if($PassDetail['Mak']=="12HTMD"){?>  selected="selected"<?php } ?> >12HTMD</option>
<option value="78HTMD" <?php if($PassDetail['Mak']=="78HTMD"){?>  selected="selected"<?php } ?> >78HTMD</option>
';


$txt = getTextBetweenTags($str, "option");
echo "<pre>";
print_r($txt);

现在它将返回一个数组。你可以使用你的逻辑将数组值惰性化为db ..

答案 1 :(得分:1)

您可以使用jquery执行此操作,只需执行此操作

$("select[name=PassNum] option").filter(function() {
    //may want to use $.trim in here
    return $(this).val() == "<?php echo $PassDetail['Mak']; ?>"; 
}).prop('selected', true);

答案 2 :(得分:0)

<select name="PassNum"> 
<option value="12HTQD" <?php if($PassDetail['Mak']=="12HTQD"){?> selected="selected"<?php     } ?> >12HTQD</option>
<option value="12HTMD" <?php if($PassDetail['Mak']=="12HTMD"){?>  selected="selected"<?php } ?> >12HTMD</option>
<option value="78HTMD" <?php if($PassDetail['Mak']=="78HTMD"){?>  selected="selected"<?php } ?> >78HTMD</option>

---------------------------------------
---------------------------------------
</select>

尝试将此更改为此。

<select name="PassNum">
<?php foreach($data as $d){?>
    <option value="<?php echo $d['variable_name'];?>" <?php if($PassDetail['Mak']==$d['variable_name']){ ?> selected="selected" <?php } ?> ><?php echo $d['variable_name']; ?> </option>
 <?php } ?>
</select>

答案 3 :(得分:0)

  1. 使用id,passNumValue属性创建一个表passNumValues。
  2. 并在此表中插入值。
  3. 这样的代码。

    $query_disp="SELECT * FROM passNumValues";
    $result_disp = mysql_query($query_disp, $conn);
    while($query_data = mysql_fetch_array($result_disp))
    {
    ?>
    <option value="<?PHP echo $query_data['passNumValue'];?>" <?php if($PassDetail['Mak']==$query_data['passNumValue']){?> selected="selected"<?php } ?> ><?PHP echo $query_data['passNumValue'];?></option>
    <?PHP
    }?>
    

答案 4 :(得分:0)

<select name="PassNum">
    <? foreach($arr as $v){?>
        <option value="<?=$v['value'];?>" <?=($v['Mak']==$d['name'])?'selected="selected"':"" ?> ><?=$v['name']; ?></option>
    <? } ?>
</select>