创建输入和发送值whit jQuery但值dosnt发送

时间:2016-02-24 10:55:07

标签: javascript php jquery

我想添加输入whit js并发送值whit jQuery但值dosnt send。

实际上字段值不能在jQuery中定义。

function addElement(myDiv, type) {
    var ni = document.getElementById(myDiv);
    var numi = document.getElementById('theValue');
    var num = (document.getElementById('theValue').value - 1) + 2;
    numi.value = num;
    var newdiv = document.createElement('div');
    var divIdName = 'my' + num + 'Div';
    newdiv.setAttribute('id', divIdName);

    newdiv.innerHTML = '<input class="name" name="name[]" value="" placeholder="عنوان"><input class="value" name="value[]" value="" placeholder="توضیحات"><input type="hidden" class="type" name="type[]" value="' + type + '"><input type="hidden" class="position" name="position[]" value="' + myDiv + '">'
    ni.appendChild(newdiv);
}

$('#add_field').live('click', function() {    
    var id = $('#id').val();
    var name = $('#name').val();
    var value = $('#value').val();
    var type = $('#type').val();
    var position = $('#position').val();

    var name = [];
    var value = [];
    var type = [];
    var position = [];

    $(".name").each(function() {
        name.push($(this).val());
    });

    $(".value").each(function() {
        type.push($(this).val());
    });

    $(".position").each(function() {
        size.push($(this).val());
    });

    $.ajax({
        type: 'POST',
        url: '../inc/add.field.php?id=' + id,
        data: {
            name: name,
            type: value,
            size: type,
            position: position
        },
        success: function(data) {
            $('#result').html(data);
        }
    });
});

PHP

print_r($_POST['name']);
print_r($_POST['value']);
print_r($_POST['type']);
print_r($_POST['position']);
echo $_GET['id'];
  

注意:未定义索引:名称

     

注意:未定义索引:值

     

注意:未定义索引:输入

     

注意:未定义的索引:位置

1 个答案:

答案 0 :(得分:0)

使用此ajax。请注意,$('form')选择器必须是定位<form>标记的有效选择器。如果序列化,则数组将作为HTTP中的数组传递,而不是作为javascript数组值传递。使用此模式,PHP会将它们识别为数组,而不是[OBJECT object]

$.ajax({
    type: 'POST',
    url: '../inc/add.field.php?id=' + id,
    data: $('form').serialize(); // that's the change
    success: function(data) {
        $('#result').html(data);
    }
});

修改

使用serializeArray()进行测试:

$.ajax({
    type: 'POST',
    url: '../inc/add.field.php?id=' + id,
    data: $('form').serializeArray(); // that's the change
    success: function(data) {
        $('#result').html(data);
    }
});

更多信息:https://api.jquery.com/serializeArray/

编辑2

正如我在评论中所说,你可以使用serialize()

http://jsfiddle.net/tZPg4/15519/

效果很好。