1

の親クラスを持つすべてのリスト項目の内容を収集し、list_arrayそれらを GET 変数を介して AJAX 呼び出しに渡す必要があります。戦略をお勧めできますか?

ここにフィドルがあります。

HTML:

<div>
    <ul class="list_array">
        <li>item A</li>
        <li>item B</li>
        <li>item C</li>
    </ul>
</div>
<p>some text</p>
<div>
    <ul class="list_array">
        <li>item B</li>
        <li>item C</li>
        <li>item D</li>
    </ul>
</div>
<p>some text</p>
<div>
    <ul class="list_array">
        <li>item A</li>
        <li>item C</li>
        <li>item E</li>
    </ul>
</div>

ここに私の現在の進捗状況があります:

$(document).ready(function(){
    var listItemArr = [];
    $('.list_array li').each(function() {
        listItemArr.push($(this).text());
    });
    alert(listItemArr);
});

フィドルが示すように、これは機能しません。

理想的には、一意の文字列も渡すだけなので、期待される結果は次のようになります。

item A
item B
item C
item D
item E

(重複を含まない)

また、配列を PHP 処理ページに渡す際の推奨事項も歓迎します。

ありがとう!

4

3 に答える 3

1

PHPについて知らない。クライアント側のコードは次のとおりです。

var arrayName = 'whatever';
//use an object as an SET to remove duplicated items
var dict = {};
$('.list_array li').map(function() {
    return $(this).text();
}).each(function(){
    dict[this] = '';
});
//retrieve the values saved to the SET
var params = '';
for(var k in dict)
    params += arrayName + '=' + k +'&';
//send request
$.get('/path/to/your.php', params, function (response) {
    console.log(response);
    //or do what ever you want with the response.
}, 'html');

</ p>

于 2012-08-10T06:45:34.773 に答える
1

これを試して:

var arr = [];
$('.list_array li').each(function() {
    var t = $(this).text();
    if (arr.indexOf(t) === -1) {
        arr.push(t)
    }
})
// arr = arr.join(',')  
// =>  item A,item B,item C,item D,item E

デモ

データを PHP に送信するには、jQuery$.postまたは$.ajaxユーティリティ関数を使用できます。

  1. $.post()
  2. $.ajax()
  3. $.get()
于 2012-08-10T06:46:20.087 に答える
1

これを試して

var all=[];
$('ul.list_array li').each(function(){
    var text=$(this).text();
    if($.inArray(text, all)==-1) all.push(text);
});
$.get('/url/to/page', {'items': all}, function(data){
    console.log(data);
});

variableallは配列のようなもの["item A", "item B", "item C", "item D", "item E"]で、配列は$_GETasで利用できます$_GET['items']

これをチェックして、フィルタリングされた配列を表示します。

于 2012-08-10T07:18:45.670 に答える