0

我有一个选择框,它有超过 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..现在它的硬编码..

提前致谢。

4

5 回答 5

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

于 2013-06-04T06:06:58.630 回答
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);
于 2013-06-04T06:07:56.717 回答
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>
于 2013-06-04T05:50:58.347 回答
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
    }?>
    
于 2013-06-04T05:53:58.953 回答
0
<select name="PassNum">
    <? foreach($arr as $v){?>
        <option value="<?=$v['value'];?>" <?=($v['Mak']==$d['name'])?'selected="selected"':"" ?> ><?=$v['name']; ?></option>
    <? } ?>
</select>
于 2013-06-04T06:08:52.553 回答