AJAX button action in foreach

时间:2019-06-06 作者:Jaron

我有loop foreach,在这里我写数据和按钮。此代码仅从一个按钮开始工作,首先在循环中,其余按钮不工作。

JS:

 jQuery(document).ready(function($) {

     jQuery(\'#przyciskUlubione\').click(function() {  

        var data = {
            \'action\': \'UlubioneDodaj\',
            \'id_plik\': $("#przyciskUlubione").val() 

        };   

        jQuery.post(ajaxurl, data, function(response) {

           if(response == "1"){                                 

                   $("#przyciskUlubione").css(\'background-color\',\'#4hui7d\'); 

                alert("wybor 1");

           } 

            if(response == "2"){

                   $("#przyciskUlubione").css(\'background-color\',\'#f47121\');

                alert("wybor 2");

           }           

        });  

    }); 

    });

PHP:

public function execute(){

         add_action( \'wp_ajax_nopriv_UlubioneDodaj\', array( $this, \'UlubioneNiezalogowany\' ));
         add_action( \'wp_ajax_UlubioneDodaj\', array( $this, \'UlubioneZalogowany\' ));

 }

  public function UlubioneNiezalogowany(){

  echo \'1\';

       wp_die();

  } 

  public function UlubioneZalogowany(){

   echo \'2\';

        wp_die();

  }   

some_function(){

    foreach(){

         echo \'<button id="przyciskUlubione" value="\'.$plik[\'id\'].\'"> Ulubione </button>\';

    }

}

SOLUTION

 jQuery(document).ready(function($) {

     jQuery(\'#przyciskUlubione\').click(function() {  

        var data = {
            \'action\': \'UlubioneDodaj\',
            \'id_plik\': $("#przyciskUlubione").val() 
             var $element = $(this);
        };   

        jQuery.post(ajaxurl, data, function(response) {

           if(response == "1"){                                 

                   $element.css("background-color", "#974269")

                alert("wybor 1");

           } 


        });  

    }); 

    });

1 个回复
最合适的回答,由SO网友:Pre\'P 整理而成

发生这种情况是因为您在ID上单击了事件触发

jQuery(\'#przyciskUlubione\').click(function() {
ID总是唯一的,HTML中不应该有多个相同的ID。

您可以使用类来实现这一点。将同一类分配给所有按钮。

将选择器更改为类:

jQuery(\'.przyciskUlubione\').click(function() {
向按钮添加值属性或数据属性。

现在,当您单击任何按钮时,将触发click事件。现在需要使用this.

下一步:更换您的线路

$("#przyciskUlubione").val()
使用此选项:

$(this).val()
这应该可以正常工作:-)

相关推荐

域重定向到wp-admin/setup-config.php文件

我的WordPress网站有一个问题,它一直运行到今天。问题是,当我键入域名时,它会重定向到wp admin/setup config。php文件。我不知道为什么会这样。之前现场工作正常。在域/wp admin/setup config上。php页面显示消息“此页面不工作www.domain.com当前无法处理此请求。HTTP错误500”