将JS创建的输入文本框的值插入数据库

时间:2012-06-12 20:24:40

标签: php javascript mysql

我正在使用jQuery创建尽可能多的输入文本框,如下所示:

<script type="text/javascript">
$(document).ready(function() {
$('#names').on({
    blur: function() {
        var name = $("<p><input class='input' type='text' /></p>")
        var nullFields = 0;
        $(this).closest('div#names').find('input.input').each(function(){
            if($(this).val() == ""){
                nullFields++;
            }
        });
        console.log(nullFields);
        if(nullFields <= 1){
         $('#names').append(name.fadeIn(500));
        }
    }
}, 'input');
 });
</script>

使用$_POST['blah']mysql_query("INSERT INTO ...")将静态文本框插入数据库不是问题,但如何插入动态创建的文本框的值?我知道我必须在文本框中创建不同的名称,并且我认为MySQL查询将通过某种循环。

修改

有问题的网站是here,特别是在第4步。如上所述,第3步非常简单。

2 个答案:

答案 0 :(得分:1)

这是一个让您入门的示例,而不是完整的解决方案。 您为名称创建一个数组,然后让php插入每个数组项

var currentArrayNum = 1;    
$('#someClickable').click(function(){

        $('#td').append('<input name="arrayName['+currentArrayNum+']" value="" />');
        currentArrayNum += 1;
    });

PHP:

foreach ($_POST as $key){
        if (is_array($key)){
                foreach ($key as $key2 => $value){
                //$key2 will equal arrayName[currentArrayNum]
               //$value will equal the user input for the text field
do some stuff
}

答案 1 :(得分:0)

您可以创建名称之外的数组,只需尝试:

<input type="text" name="post_input[input_1]" value="">
<input type="text" name="post_input[input_2]" value="">

提交后,你会得到$ _POST [“post_input”]中的数组,其中包含键input_1和input_2及其指定的值。然后你只需将它们作为普通数组循环,例如

$aTextFields = $_POST["post_input"];
foreach( $aTextFields as $sValue ) {
  ...
}