2011-12-16 11 views
0

これは特定のクラスのボタンをクリックすると実行するAjax関数ですが、同じクラスの多くはPHPのwhileループから生成されますが、ボタンがクリックされたクラスでのみ出力されるデータで、他のクラスは同じ名前ではありません。ボタンがクリックされたクラスのエコーデータ

関数で

<script> 
    function ajax_posta() { 
// Create our XMLHttpRequest object 
     var hr = new XMLHttpRequest(); 
// Create some variables we need to send to our PHP file 
     var url = "javas.php"; 


     hr.open("POST", url, true); 
// Set content type header information for sending url encoded variables in the request 
     hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
// Access the onreadystatechange event for the XMLHttpRequest object 
     hr.onreadystatechange = function() { 
      if (hr.readyState == 4 && hr.status == 200) { 
       var return_data = hr.responseText; 
       document.getElementById('status').innerHTML = return_data; 
      } 
     } 
// Send the data to PHP now... and wait for response to update the status div 
     hr.send("num=" + (--num)); // Actually execute the request 
     document.getElementById('status').innerHTML = "<img src = 'loading.gif' height = '30'  width = '30'>"; 

    } 
    $(document).ready(function() 
    { 
     $('.eventer.button').click(function() { 
      var self = this; 
      $.post('javas.php', function (data) { 
       $(self).parent('div').find('.status').html(data); 
      }) 
     }); 
    } 
    ) 
    ; 
</script> 

PHPコード、ID「状態」ではないクラス「状態」の要素を呼び出すのに対し、「状態」がクラスではないIDであるように私はまた、Ajaxの機能を変更する必要がありますwhileループは、同じ名前のクラスとボタンの複数の複製を生成します。

echo " <div class = 'eventer'> $timeposted <br>$eventlist <input name='myBtn'  type='submit' value='increment' onClick='javascript:ajax_post();'> 
<input name='lol' type='submit' value='dec' onClick='javascript:ajax_posta();'></div> 
<div class = 'status'></div>"; 
echo "<br>"; 

私はこれまでのところ動作していないようですが、何か助けていただきありがとうございます!

$('.eventer > .button').click(function() { 
     var self = this; 
     $.post('javas.php', function (data) { 
      $(self).closest('.eventer').find('.status').html(data); 
     }) 
    }); 

をとjQueryにそのajaxposta()の事を変換:

+0

ajax_postaは()<入力名= 'myBtnです' タイプ=のonClick = 'javascriptの値= '増分' 'を提出する' と同じイマイチ:ajax_postを(); '>投稿プロセスで問題になるかもしれません。 – Jason

+0

多分 'status' id/classesの名前を変更するのは読み込みが混乱するだけでなく、デバッグのヒントを与えるかもしれません – konsolenfreddy

+0

また、あなたは既にjQueryを使用しています。なぜ$ .ajaxを使用しないのですか? http://api.jquery.com/jQuery.ajax/ – Jason

答えて

0

これを試してみてください。 = D

たぶん、このような何か:

function ajax_post() { 
    $.ajax({ 
     type: "POST", 
     url: "javas.php", 
     data: "num=" + (--num), 
     success: function(result){ 
     $('#status').html(result); 
    }); 
    $('#status').html("<img src=\"loading.gif\" style=\"height:30px; width:30px;\">"); 
} 
+0

どうすればいいですか? – foshoeiyyy

+0

私は私の答えでそれを刺すようにしました... – Jason