在jQuery append()中包含PHP函数的正确方法是什么?

时间:2019-05-27 19:45:22

标签: php jquery

我正在使用jquery将另一行附加到使用PHP的表单中。 原始代码中的PHP使用一个函数来填充SELECT输入。

来自表单的一个输入的示例;

<div class="flex_container">
<div class="flex_label_rpt">Person Type</div>
    <div class="flex_data">
        <select name="person_type[]">
            <?php get_persons_type_list($incident['person_type']) ?>
        </select>
    </div>
</div>
    ... Additional Fields ...
</div>

我可以使用相同的PHP函数来填充使用jquery添加的新行吗?

我尝试过这样的事情:

'<select name="person_type[]">'+
    "<?php get_persons_type_list($incident['person_type']) ?>"+
'</select>';

但是,它只是吐出了PHP代码,被注释掉了。

任何帮助将不胜感激。 我对PHP相当满意,但对jquery却不太了解。

谢谢。

-编辑-----------------------

var maxField_p = 10; //Input fields increment limitation
var addButton_p = $('#incident_add_person'); //Add button selector
var wrapper_p = $('#item_row_person'); //Input field wrapper
var fieldHTML_p =
    '<select name="person_type[]">'+
    "<?php get_persons_type_list($incident['person_type']) ?>"+
    '</select>';

var x_p = 1; //Initial field counter is 1

$(addButton_p).click(function(){
    //Check maximum number of input fields
    if(x_p < maxField_p){ 
        x_p++; //Increment field counter
        $(wrapper_p).append(fieldHTML_p); //Add field html
    }
});

1 个答案:

答案 0 :(得分:1)

创建表单元素后,您需要使用ajax请求填充新行。

$.ajax({
    type: "GET",
    url: "script.php",
    dataType: 'JSON',
    beforeSend: function() {
        //You can show a preloader here
    }
}).done(function(data) {
    //Hide the preloader
    //Populate the form element 
}).fail(function() { 
    //Show an error message
});