0

jQueryuiとjeditableを使用してドラッグできる要素を含む編集可能なリストを作成しました。次に、リストのコンテンツを「投稿」して保存します。リストの内容を「シリアル化」するにはどうすればよいですか?

たとえば、リストがある場合:

<ol id="topics">
    <li><span class="editable">random topic</span></li>
    <li><span class="editable">another topic</span></li>
    <li><span class="editable">third topic</span></li>
</ol>

文字列に変換するにはどうすればよいですか?

?topics1=random topic&topic2=...

これが理にかなっていることを願っています。私の目標は、postを使用してリストの順序と内容を保存することです。ありがとう

4

1 に答える 1

1
var data = $('#topics .editable').map(function() {
    return $(this).text();
}).get();

次に、この配列をAJAX呼び出しで使用するか、JSONなどとしてシリアル化してフォームフィールドに格納します。

クエリ文字列が必要なので、によって生成される形式を確認してください$.param({topics: data})。これにより、配列を含むphpスタイルのクエリ文字列が生成されます。topics[]=abc&topics[]=def

あなたが使用しようとしていると言ったので$.post

$.post('url', { topics: data }, function() { /* ... */ });

次に、サーバー側でPHPを使用すると仮定すると、配列があります。$_POST['topics']


本当に必要なtopic1場合などは、次を使用してください。

var data = {};
$('#topics .editable').each(function(i) {
    data['topic' + (i + 1)] = $(this).text();
});

$.post('url', data);
于 2012-04-27T13:32:00.277 に答える