0

テキストボックスの配列があります

<input type="text" name="txt[]" id"txt[]" value="test 1" />
<input type="text" name="txt[]" id"txt[]" value="test 2" />
<input type="text" name="txt[]" id"txt[]" value="test 3" />

jqueryを使用して、この配列をphpファイルに投稿したいと考えています。

$('#submit').click(function() {

        $.ajax({
            type : 'POST',
            url : '<?php echo site_url('projects/create'); ?>',
            data: {
               txt: $('#txt').val()
            },
            success:function (data) {
                $("#log_msg").html(data);
            }          
        });
    });

しかし、それは戻りますundefined

4

4 に答える 4

2

書くだけ

 <input type="text" name="pro_video[]" id="pro_video" />

$('#submit').click(function() {

var videos = $('input[name^=pro_video]');
        var postData = {
            vdo: [], // the videos is an array
        };
        $.each(videos, function(index, el) {
            // push the value in the vdo array
            postData.vdo.push($(el).val());
        });

        $.ajax({
            type : 'POST',
            url : '<?php echo site_url('projects/create'); ?>',
            data: {
               pro_video : postData
            },
            success:function (data) {
                $("#log_msg").html(data);
            }          
        });
    });
于 2012-05-27T16:11:25.340 に答える
0

jQuery $(form).serialize() 関数がここで役に立ちます!

$('#submit').click(function() {

        $.ajax({
            type : 'POST',
            url : '<?php echo site_url('projects/create'); ?>',
            data: $('#testForm').serialize(),
            success:function (data) {
                $("#log_msg").html(data);
            },
            error: function(x,t,e){
                $("#log_msg").html('An error occured: '+e);
            }
        });
    });

ファイル (site_url('projects/create') が指す場所) に $_POST のきれいできれいな配列を取得します。そのフォームに入力送信を追加すると、serialize() は送信値も投稿するため、配列をデータベースに直接挿入する場合は、POST 配列から削除する必要があります。ともかく。;)

楽しむ !PS: id"txt[]" は正しいマークアップではないようです... ! id="txt_1". ドキュメントには 1 つの参照 ID しか持てません。マークアップ id で括弧を使用できるとは思いません。(私が間違っていたら誰かが私を訂正してください..)

于 2012-05-27T15:41:16.040 に答える
0

JavaScript から PHP に配列を渡すには、JQueryのserialize 関数を使用できます。これは、フォーム全体または選択したフォーム要素の一部に渡すことができます。あなたが与えた例では、次のようになります。

HTML:

<input type="text" name="txt[]" class="txt" value="test 1" />
<input type="text" name="txt[]" class="txt" value="test 2" />
<input type="text" name="txt[]" class="txt" value="test 3" />

そしてJavascript:

$('#submit').click(function() {

    $.ajax({
        type : 'POST',
        url : '<?php echo site_url('projects/create'); ?>',
        data: {
           txt: $('.txt').serialize()
        },
        success:function (data) {
            $("#log_msg").html(data);
        }          
    });
});

これにより、php に文字列 "txt%5B%5D=test+1&txt%5B%5D=test+2&txt%5B%5D=test+3" が与えられ、これらの値の配列として解釈できます。

ID は要素ごとに一意であると想定されているため、ID の代わりにクラスを使用したことに注意してください。

于 2012-05-27T15:55:41.387 に答える
0

jQuery serialzie() を使用して、html フォームからフォーム値を取得できます。

例えば ​​:

<form id="testForm" method="post">
    <input type="text" name="txt[]" id"txt[]" value="test 1" />
    <input type="text" name="txt[]" id"txt[]" value="test 2" />
    <input type="text" name="txt[]" id"txt[]" value="test 3" />
</form

jQueryを使用してフォームから値を取得します。

$('#testForm').serialize();
于 2012-05-27T15:31:17.247 に答える