2011-12-16 2 views
0

Это функция ajax, которую я бы хотел выполнить при нажатии кнопки в определенном классе, многие из тех же классов генерируются из цикла while в php, однако я хочу данные, которые будут выводиться только в классе, когда кнопка была нажата, а не другие классы, хотя они имеют одинаковое имя.Эхо-данные в классе, в котором была нажата кнопка

мне также нужно изменить АЯКС функцию «статус» класс не идентификатор, тогда как вызовы функций элементы ID «Статус», «статус» не класс,

<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 код в 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>"; 

Что я до сих пор не работает, любая помощь приветствуется, спасибо!

+0

ajax_posta() разве такой же, как <имя входного = 'myBtn' тип = 'Submit' 'приращение' значение = OnClick = "JavaScript: ajax_post(); '> Возможно, это просто проблема в процессе публикации. – Jason

+0

Возможно, вы переименуете один из id/классов 'status', так как это не только запутывает чтение, но и может дать вам подсказку для отладки – konsolenfreddy

+0

Кроме того, я вижу, что вы уже используете jQuery. Почему бы не использовать $ .ajax? http://api.jquery.com/jQuery.ajax/ – Jason

ответ

0

Попробуйте это:

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

И конвертировать эту ajaxposta() вещь в Jquery. = 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

Смежные вопросы