2014-11-29 18 views
-1

привет ребята я пытаюсь создать кнопку с PHP и AJAX, как так писать эти коды, но только работать в первом циклеPHP/Ajax кнопка не работает

<?php header('Cache-Control: no-cache'); ?> 
<script> 
    $(document).ready(
     function(){ 
      $("#like").click(function(){ 
       $.ajax({ 
        type: "POST", 
        url: "<?php echo ADDRESS ;?>thank.php", 
        data: "like="+$("#like").val(), 
        success: function(result){ 
         $("#result").html(result); 
        }   
       }); 
      }); 
     } 
    ); 
    </script> 
<?php 

foreach ($this->value['posts'] as $post){ 
    echo $post[1] . $post[0] .$post[2] . $post[3] . '</br>'; 
    echo '<div id="result"></div>'; 
} 
?> 

Я думаю, что проблема в моем #like, что повторить подобное и JQuery не знаю, какой из них является наш ДИВ

+0

Ya, ID должны быть уникальными в контексте документа, вместо этого используйте класс. Но тогда, действительно не уверен, какой результат вы ожидаете здесь –

+0

попробуйте использовать append (result) вместо html (result) –

+0

@ A.Wolff Я использовал класс, но тот же результат :( –

ответ

0

нормально ктото ответил на мой вопрос, но идентификатор не знаю, почему удалены: O

любым способом он или она writed

$(this) 

спасибо!

ваш код не работал, но помогите мне исправить эту проблему, которая была в моей кнопке! все кнопки возвращаемых значений для первого цикла, так что я изменил код JS для этого

<script> 
    $(document).ready(
     function(){ 
      $(".like").click(function(){ 
       var spdiv = ".result" + $(this).val(); 
       $.ajax({ 
        type: "POST", 
        url: "<?php echo ADDRESS ;?>thank.php", 
        data: "like="+$(this).val(), 
        success: function(result){ 
         $(spdiv).html(result); 
        }   
       }); 
      }); 
     } 
    ); 
    </script> 

и я использую класс вместо идентификатора.

0

Идентификаторы являются идентификаторами - они должны быть уникальными! Кроме того, ваш скрипт беспорядочен, и я думаю, вы не упомянули, что на странице есть много таких кнопок, не так ли?

Попробуйте PHP код:

foreach ($this->value['posts'] as $index=>$post) { 
    echo '<div class="comments">'; 
    echo $post[1] . $post[0] .$post[2] . $post[3] . '</br>'; 
    echo '<button class="like" data-id="<?php echo $index; ?>">LIKE</button>'; 
    echo '<div class="result"></div>'; 
    echo '</div>'; 
} 

И это JavaScript:

$(document).ready(function(e) { 
    $("div.comments").on("click", "button.like", function(e) { 
     $.ajax({ 
      type: "post", 
      url: "<?php echo ADDRESS ;?>thank.php", 
      data: { 
       like: $(this).attr("data-id") 
      }, 
      success: function(data, textStatus, jqXHR) { 
       $(this).siblings(".result").html(data); 
      } 
    }); 
}); 

Сценарий выше будет добавить слушателя событий для всех buttons, которые имеют класс like. $(this) будет ссылаться на кнопку типа, а $(this).siblings(".result") получит результат div, который является прямым родственником подобной кнопки (!), Что означает, что они оба сидят в одном <div class="comments">. Я изменил подход к элементам DOM. Я также добавил новый идентификатор вашей кнопки LIKE, поэтому не забудьте изменить это data-id в соответствии с вашими потребностями!

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