1

jquery で特定のスパンから php に値をポストし、特定の div に値を取得する方法は? 私はこのようなものをしたいと思います:クラス「more」でスパンをクリックし、このliからphpに値を投稿し、jqueryを介してid「test」でdivに値を取得します。

ここに、phpが提供するコードがあります。必要に応じて、要素に一意の「id」を追加できます。

 <li>
    <span class="word">one word</span>
    <span class="numb">1</span>

    <span class="more">more</span>
    <div id="test"></div>
 </li>
 <li>
    <span class="word">another word</span>
    <span class="numb">13</span>

    <span class="more">more</span>
    <div id="test"></div>
 </li>

問題は、このjqueryを使用していることです。クラス「.word」を含む最初のスパンのみを投稿しますが、代わりに、スパンがあるスパンのみを投稿したいと思います。IDが「test」の最初のdivではなく、スパンがクリックされたdivで値を取得します。私のjqueryコードは次のとおりです。

 $('.more').live("click",function() {

 var ID = $('.word').test();
 var DI = $('.numb').text();


      $.ajax({
           type:"POST",
           data: "value="+ ID + "&numb="+ DI,
           cache: false, 
           url: "more.php",
           success: function(msg){
                $('#test').html(msg).fadeIn('slow');
           }               
      });     
 });

jquery と phpvar ID = $(this).attr("id");の代わりに 追加することで、単語の一意の値を投稿できます。しかし、他の値はどうですか?そして主な問題は、スパンボタン「もっと」がある次のdivに投稿することです。var ID = $('.word').test();<span id="<?php echo $word; ?>" class="more">more</span>

4

2 に答える 2

2
var ID = $('.word').test();

で置き換えます

var ID = $('.word').text();

また、推奨されてい.onない代わりに jQuery 関数を使用してください。.live.live

完全な jQuery コード

$(function()
{
    $('.more').on("click",function()
    {
        var clickedDiv = $(this);
        var ID = clickedDiv.parent().find('.word').text();
        var DI = clickedDiv.parent().find('.numb').text();

        $.ajax(
        {
            type:"POST",
            data: "value="+ ID + "&numb="+ DI,
            cache: false, 
            url: "more.php",
            success: function(msg)
            {
                clickedDiv.find('div[custom_id="test"]').html(msg).fadeIn('slow');
            }               
        });     
    });
});

IDについてもう 1 つ同じことを繰り返さないでくださいDOM

ID は一意でなければなりません。

そのために私が使用した<div custom_id = "test"></div>

更新された HTML

<li>
    <span class="word">one word</span>
    <span class="numb">1</span>

    <span class="more">more</span>
    <div custom_id = "test"></div>
</li>
<li>
    <span class="word">another word</span>
    <span class="numb">13</span>

    <span class="more">more</span>
    <div custom_id = "test"></div>
</li>
于 2013-02-23T09:51:13.030 に答える
0

PHP側で何もしていない場合、これはajaxリクエストがなくてもうまくいく可能性があります。このコードを確認してください:

html では、 id の代わりに class を使用して div を作成します。

<li>
    <span class="word">one word</span>
    <span class="numb">1</span>

    <span class="more">more</span>
    <div class="test"></div>
 </li>
 <li>
    <span class="word">another word</span>
    <span class="numb">13</span>

    <span class="more">more</span>
    <div class="test"></div>
 </li>

それから

$('.more').click(function (){

 var ID = $('.word').text();
 var DI = $('.numb').text();

 var Data = "value="+ ID + "&numb="+ DI;

 $(this).closest('.test').html(Data); // use anyone of them
 or 
 $(this).sibling('.test').html(Data); // use anyone of them

});

これは完全に機能します。これは更新されたコードです

于 2013-02-23T10:02:08.287 に答える