php - 通过 jQuery 设置表单值的任何缺点

标签 php javascript jquery

我有很多元素的表单,大多数是选择框、复选框、单选框。例如下面的选择框 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/

相关文章:

php - 从第一个表中提取数据并使用其值从其他表中提取数据

php - 简单解释html DOM树>子节点概念

php - 是否可以使用 PhpSpreadSheet 在现有电子表格中写入?

javascript - Gulp 中的 Babel 对象分配插件

javascript - 当用户向上滚动到某个点时向元素添加类

javascript - 使用 Tinysort 按子属性对 HTML 列表进行排序

php - 如何使用php从mysql中的多个表中搜索数据

javascript - 在旋转 div 时使用 css 强制大小到视口(viewport)

jquery - 如何为 select2 中的每个选项设置不同的颜色?

jQuery Delegate - 在事件闭包中查找委托(delegate)对象