0

JSON を使用して、このように取得する複数の値を送信するにはどうすればよいですか?

foreach($_POST['listItem'] as $key => $values){

    list($eventDate, $eventTitle) = $values;

}

現時点では、次のように値が送信されます。しかし、これは文字列の一部しか送信していないため、正しく機能していないようです。また、caltitle 値を送信する場所/方法もわかりません。

これは私を夢中にさせています。どんな助けでも素晴らしいでしょう。

var txt = $("#listbox");

            var caltitle = copiedEventObject.title

            var dtstart = $.fullCalendar.formatDate(copiedEventObject.start, 'yyyyMMdd');

            var txt = $('#listbox');     
            txt.append("<li class ='listItem'> " + dtstart + "</li>")

            // remove the element from the "Draggable Events" list
            $(this).remove();           

        }
    });


        $('#calendarform').submit(function(e) {
            var form = $(this);
            var listItems = $('.listItem'); 
            listItems.each(function(index){   //For each event do this:
                var listItem = $(this);
                    $("<input type='hidden'/>").val(listItem.text()).appendTo(form).attr('name', 'listItem[' + index + ']');
                });

            //Get text information from elements

        });

編集:

(JSON を使用)

  $('#calendarform').submit(function(e) {
            var form = $(this);

            var going_to_be_json = [];
            list.each(function(i, item) {
              going_to_be_json.push({
                 'id':'test',
                 'title': 'test'
              });
            });

            $('#stuff').val( JSON.stringify(going_to_be_json) );

     });
4

2 に答える 2

0

データをオブジェクトの配列に準備し、JSON.stringify() を使用してその配列を JSON に変換し、隠しフォームの値をその文字列に設定します (または XHR を使用してサーバーに送信します)。

データを準備する方法の非常に限定的な例を次に示します。

var going_to_be_json = [];
list.each(function(i, item) {
  going_to_be_json.push({
     'id':item.id,
     'title': item.title,
     'date': (new Date()).now()
  });
});
hidden_form_element.val( JSON.stringify(going_to_be_json) );

そしてサーバー上で

<?php
$json_data_string = $_POST['hidden_form_field_containing_json_data']; // sanitize however
$array_data = json_decode($json_data_string);

JSON (Javascript Object Notation) については、 json.orgおよびTag Wikiからさらに多くの準備ができています(ただし、tag wiki はより多くの例とリンクを示しているだけです)。

もう少し方向性が必要だったようです。私が持っていたものをコピーして貼り付けるだけでなく、読んでそれが何をしているのかを理解しようとすることを望んでいました....

   $('#calendarform').submit(function(e) {
        var form = $(this),
            listItems = $('.listItem'),
            data = [],
            hidden = $('<input />'); // create a hidden field for the form.
                                    // or just select the hidden form element from the page
        hidden[0].type = 'hidden'; // set the type
        hidden[0].name = 'some_name_for_php_to_recognize'; // and name

        listItems.each(function(i,el){ 
             data.push({'index': i, 'text': $(el).text()});
        });

        hidden.val(JSON.stringify(data));
        $(this).append(hidden); // not needed if the hidden element is already in the DOM

    });
于 2012-05-11T14:01:30.030 に答える
0

jQuery Post または Get メソッドで送信し、php で取得します$.postまたは$.getを使用して複数の値を送信できます

于 2012-05-11T12:52:46.507 に答える