【问题标题】:Can't add dropdown list yii using Javascript无法使用 Javascript 添加下拉列表 yii
【发布时间】:2017-07-17 00:43:36
【问题描述】:

我还是 yii 的新手 现在我想添加一个 Javascript 代码,当我单击按钮时,可以将下拉列表附加到表格中。

这是我的桌子:

  <table class="table table-hover" id="table-add-more">
    <tr>
        <th style="width:50px;">No</th>
        <th style="width:200px;">Name</th>
        <th style="width:50px;">Count</th>
        <th style="width:30px;"></th>
    </tr>
    <tbody>
    </tbody>
  </table>

这是我的按钮:

  <a id="btn-add-more" class="btn btn-sm btn-success">Add More</a>  

这是我的脚本:

<script>
  $(document).ready(function(){
    var number = 1;
    var product = <?php $product = Product::model(); echo $form->dropDownList($product,'ID', CHtml::listData(Product::model()->findAll(), 'ID', 'name')); ?>;
        $('#btn-add-more').click(function() {
            var more_field  = "<tr>"+
                             "<td>"+number+"</td>"+
                             "<td>"+                                
                                <?php echo "product"; ?>
                             +"</td>"+
                             "<td><input type='number'/></td>"+
                             "<td><input type='checkbox'/></td>"+
                             "</tr>"
            $('#table-add-more').append(more_field);
            number = number + 1;    
        });
  });
  </script>

我收到一条错误消息:

"意外的令牌

var product = &lt;select name="Product[ID]" id="Product_ID"&gt;附近 但我还没有找到错误。 请帮忙..

【问题讨论】:

  • 你是从 php 生成你的 js 脚本还是它只是一个 js 文件?如果它是 js 文件,你可以这样做,因为 php 在服务器端工作而 js 在客户端工作,并且你在 js 中的 php 代码是无效的(浏览器不会将它解释为 php,而是作为 js),这就是你的原因出现错误
  • 我使用了已经连接到yii的javascript文件。
  • 所以你可能只包含你的 js 文件,所以这不起作用,因为你在 javascript 代码中将 php 代码发送到客户端浏览器,并且你希望客户端浏览器会执行 php 代码,它不会因为浏览器没有其余的 php 代码,也没有 php 解释器,它是服务器工作。
  • 嗯,如果是这样的话。用javascript添加下拉列表是不可能的?
  • 有可能但不是那样,我只是想说你不能这样混合你的代码,阅读这个主题stackoverflow.com/questions/6369313/…首先你必须了解js和php之间的区别以及它是如何实现的工作,然后您可以开始编程,并回答您的问题,您可以通过多种方式进行操作,例如,您可以将下拉列表存储在 js 中的某些变量/模板中,或者您也可以对 php 进行 ajax 调用并询问下拉列表,然后成功后将结果附加到您想要的位置

标签: javascript php drop-down-menu yii html-table


【解决方案1】:

我认为更好的方法是在初始化时使用带有display: none 的下拉列表,当您单击该按钮时,您可以将显示更改为阻止。但是,如果您想将下拉列表附加到您的表格中,我认为您的 javascript 函数中有两个问题:

1.您需要将此php代码包装成""

var product = "<?php $product = Product::model(); echo $form->dropDownList($product,'ID', CHtml::listData(Product::model()->findAll(), 'ID', 'name')); ?>";
  1. 我认为你需要有&lt;?php echo $product; ?&gt;,而不是&lt;?php echo "product"; ?&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多