我有很多元素的表单,大多数是选择框、复选框、单选框。例如下面的选择框 chart[type]
我通过 php 设置它的值
<select name="chart[type]" id="chart_type" >
<option value="nps" <?php if ( $chart_data['chart']['type'] == 'nps' ) echo ' select="selected" '; ?> >NPS Barchart</option>
<option value="score" <?php if ( $chart_data['chart']['type'] == 'score' ) echo ' select="selected" '; ?>>Number/score</option>
<option value="top5" <?php if ( $chart_data['chart']['type'] == 'top5' ) echo ' select="selected" '; ?>>Top 5</option>
</select>
我尝试了使用 jQuery 设置值的代码
<select name="chart[type]" id="chart_type" >
<option value="nps" >NPS Barchart</option>
<option value="score">Number/score</option>
<option value="top5">Top 5</option>
</select>
<script>
$(function(){
$('[name="chart[type]"]').val(
'<?php echo $chart_data['chart']['type']; ?>'
);
});
</script>
我觉得代码更简洁了。我打算将所有表格代码重新填写更改为这种方式。我想知道使用 second 有什么缺点吗? .. 我的应用程序用于图表渲染,如果禁用 JavaScript,它将无法工作!
最佳答案
如果您正在使用 PHP 并且没有真正的理由使用 JavaScript 来打印 HTML,我会继续使用 PHP。像这样混合不是一个好主意,你真的应该考虑 AJAX。但是您可以使您的 PHP 代码更易于维护和动态:
<?php
$data = array(
'nps' => 'NPS Barchart',
'score' => 'Number/score',
'top5' => 'Top 5'
);
$options = '';
foreach ($data as $key => $value) {
$selected = $chart_data['chart']['type'] == $key ? 'selected' : '';
$options .= sprintf('<option class="%1$s" %2$s>%3$s</option>', $key, $selected, $value);
}
echo sprintf('<select name="chart[type]" id="chart_type">%s</select>', $options);
关于php - 通过 jQuery 设置表单值的任何缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806508/