PHP只读取动态创建的输入数组的第一个值

时间:2013-12-02 18:28:09

标签: javascript php jquery

抱歉英语不好,我还在学习......

我在HTML中只有一个只有

的表
<tr id="linha_1">
    <td><input type="text" name="nome_cor[]" value="" /></td>
    <td><input type="text" name="cod_cor[]" value="" /></td>
    <td><input type="file" name="img_cor[]" /></td>
    <td><input type="button" value="Remover" id="remove" onclick="$.removeLinha(this);" /></td>
</tr>

我还有一个JS脚本,可以在此表中添加新行,此脚本会复制第一行,因此用户可以添加更多颜色......

$(document).ready(function()
{
    var row_limit = 0;
    $('#add').click(function()
    {
        var linha_total = $('tbody#repetir tr').length;
        if (row_limit == 0 || row_limit > linha_total)
        {
            var linha = $('tbody#repetir tr').html();
            var linha_total = $('tbody#repetir tr').length;             
            var linha_id = $('tbody#repetir tr').attr('id');                
            $('tbody#repetir').append('<tr id="linha_' + (linha_total + 1) + '">' + linha + '</tr>');
        }
        else
        {
         alert("Desculpe, mas você só pode adicionar até " + limite_linhas + " linhas!");
         }                      
});

使用malsup表单插件通过post发送数据:

$("#send").click(function(event) {
    event.preventDefault();
    $("#form-tapete").ajaxForm({        
        // validation and progress bar (*not important to the question i think*)
    },
    url: 'dados-tapete.php',
    resetForm: false
 }).submit();

我正在尝试使用以下代码在PHP中阅读:

for ($i=0; $i < sizeof($cod_cor); $i++)
{
    $path_cor = "catalogo/tapete/cor/";
    $path_cor = $path_cor.basename($_FILES["img_cor"]["name"][$i]); 
    if (!move_uploaded_file($_FILES["img_cor"]["tmp_name"][$i], $path_cor)) 
        die("Ocorreu um erro ao enviar a imagem, tente novamente!"); 
    $cor_img_name = "catalogo/tapete/cor/".$_FILES["img_cor"]["name"][$i]; 
    $cadastra_cores = $con->sql_query("INSERT INTO tape_cores VALUES ('$nome_tapete','$cod_cor[$i]','$nome_cor[$i]','$path_cor')"); 
}

PHP脚本可以读取值并将值发送到数据库,但只有第一个值... 动态添加的行不会出现在$ _POST数组...

我搜索了这个并在这里找到了一些问题,但没有解决方案...

对不起英语不好,如果你不理解我,我可以试着用其他的话来解释...谢谢

1 个答案:

答案 0 :(得分:2)

我会使用类似这样的东西:

$.post( "test.php", $( "#testform" ).serialize() );

对于Malsup JQuery,请使用formSerialize();

var queryString = $('#myFormId').formSerialize();  
$.post('myscript.php', queryString);