javascript - 使用 javascript 中的append() 到带有 PHP 代码的选择表单

标签 javascript php jquery html codeigniter

我正在尝试使用 javascript 动态添加输入表单。

例如,如果我单击“添加更多字段”按钮,它将自动添加另一个选择输入表单。

当我使用包含 PHP 代码的选择输入表单进行尝试时。这不起作用。它给了我一个错误 Uncaught SyntaxError: Invalid or Unexpected token

PHP/HTML:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <div class="input_fields_wrap">
            <button class="btn btn-primary add_field_button" type="button">Add More Fields</button>
            <div>
                <select class="form-control" name="findings[]">
                    <?php 
                        $option = '<option value="'.$row->id.'">'.$row->illness.'</option>';
                        foreach($findings->result() as $row)
                        { 
                            echo '<option value="'.$row->id.'">'.$row->illness.'</option>';
                        }
                    ?>
                </select>
            </div>
        </div>
    </body>
</html>

JS:

$(document).ready(function() {
    var max_fields = 10; //maximum input boxes allowed
    var wrapper = $(".input_fields_wrap"); //Fields wrapper
    var add_button = $(".add_field_button"); //Add button ID
    var x = 1; //initlal text box count
    $(add_button).click(function(e) { //on add input button click
            e.preventDefault();
            if (x < max_fields) { //max input box allowed
                x++; //text box increment
                $(wrapper).append('<div> < select class = "form-control"
                    name = "findings[]" > 
                    <?php 
                        foreach($findings->result() as $row)
                        { 
                            echo "<option value="$row->id">$row->illness</option>";
                        }
                    ?> < /select> class="remove_field">Remove</a > < /div>'); / / add input box
                }
            }); $(wrapper).on("click", ".remove_field", function(e) { //user click on remove text
            e.preventDefault();
            $(this).parent('div').remove();
            x--;
        })
    });

最佳答案

我为您实现了一个示例:

JS代码:

$(document).ready(function() {
    var max_fields = 10; //maximum input boxes allowed
    var wrapper = $(".input_fields_wrap"); //Fields wrapper
    var add_button = $(".add_field_button"); //Add button ID
    var x = 1; //initlal text box count
    $(add_button).click(function(e) { //on add input button click
      e.preventDefault();
      if (x < max_fields) { //max input box allowed
        x++; //text box increment
        $( ".aaaa" ).first().clone().appendTo( ".input_fields_wrap" );
        }
    });
    $(wrapper).on("click", ".remove_field", function(e) {
      e.preventDefault();
      if($(".aaaa").length > 1) {
        $(this).parent('div').remove();
      } else {
        alert('You can not delete all elements');  
      }
    })
});

HTML 代码:

<div class="input_fields_wrap">
            <button class="btn btn-primary add_field_button" type="button">Add More Fields</button>
            <div class="aaaa">
                <select class="form-control" name="findings[]">
                    <option value="a">aaaaaa</option>
                    <option value="b">bbbbbb</option>
                    <option value="c">ccccccc</option>
                </select>
                <button class="remove_field">Remove</button>
            </div>
        </div>

如果您想使用 PHP 作为选择选项,请按如下方式使用

<select class="form-control" name="findings[]">
<option value="">Select an option</option>
<?php 
if($findings->result()) {
    foreach($findings->result() as $row) {
        echo '<option value="'.$row->id.'">'.$row->illness.'</option>';
    }
}
?>
</select>

关于javascript - 使用 javascript 中的append() 到带有 PHP 代码的选择表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41318499/

相关文章:

javascript - React.js 直接用 HTML 写组件

javascript - 使用合金 Backbone 模型的参数保存模型

PHP - 对象数组中丢失引用?

javascript - jQuery .html() 无法按预期工作

javascript - 使用 window.onerror 捕获错误,但在控制台上看到错误

javascript - 服务器端调用未显示 Fancybox

php - Doctrine: No alias was set before invoking getRootAlias() 错误

php - 如何从 Post 中获取 Yoast Meta 而不是 Wordpress Meta?

javascript - 从索引位置向后查找字符串中的空格

javascript - 如何在 jquery/javascript 中删除给定 url 的所有 <div> 图像?