2

H3 および 2 P タグを使用して動的に取得された Listview があります。次のように:

<li>
  <h3>Product no.4</h3>
  <p><strong>Product description</strong></p>
  <p>_price_</p>
  <p>_quant_</p>
  <p class="ui-li-aside"><strong>productID</strong></p>
</li>

リストビューには、1 つのアイテム (li) または 10 ~ 15 のアイテムが含まれる場合があります。最初から知ることはできません。私のページには、リストビューの内容をデータベースに保存するためのボタンもあります。データベースにアイテムを適切に保存できるようにするには、すべてのリストアイテムの productID、quant、およびprice TAG コンテンツが実際に必要です。各リスト項目の内部タグを取得して、作業を行う PHP に投稿できるようにするにはどうすればよいですか?

アイテムが失われないように、すべてのリスト アイテムを 1 回の投稿で送信する方法はありますか?

フォーム内にリストビューを配置し、ボタン onclik は次のようにする必要があると思います。

$("#saveinv").click(function() { //When save button is clicked...
       var optionTexts = [];
       $("#listaproduse li").each(function() { optionTexts.push($(this).text()) });
       var text = '"' + optionTexts.join('"<br/> "') + '"';
       ... some post function here...
});       

しかし、jquery の動的要素を含むフォームを投稿する方法がわかりません。

どんな助けでもいただければ幸いです

4

1 に答える 1

3

作業例: http://jsfiddle.net/ZmtW3/

あなたがしたいことは、データベースに保存されるオブジェクトの配列を作成することです。各ループはリストビューを通過し、必要なデータのみを解析します。すべてのリストビュー要素は単一のオブジェクトに格納され、そのオブジェクトは配列にプッシュされます。

使用する Javascript:

$(document).on('pagebeforeshow', '#index', function(){ 
    $(document).on('click', '#save-list', function(){ 
        var listview_array = new Array();
        $( "#list li" ).each(function( index ) {
            listview_el = new Object();
            listview_el.id=$(this).find('h3').text()
            listview_el.price=$(this).find('p').eq(2).text();
            listview_el.quantity=$(this).find('p').eq(3).text();
            listview_array.push(listview_el) 
        });
        var stringifyObject = JSON.stringify(listview_array);
        alert(stringifyObject);
    });
});

この例は、リストビューの例に基づいて作成されているため、直接使用できます。

リストビューが解析されると、配列が文字列化され、その文字列がサーバー側に送信されます。フォームは必要ありませんが、使用できます。jQuery Mobile で作業するときにフォームを適切に送信する方法についての以前の回答を次に示します。基本的に、AJAX を使用してサーバーと通信します。

データベースからそのデータを読み返すと、JSON.parse()関数を使用して文字列化されたテキストからオブジェクトを作成する必要があります。その後、配列をループしてリストビューを再作成します。

リストビューを動的に作成する方法については、私の他の記事をご覧ください。

于 2013-07-10T15:53:39.663 に答える