【问题标题】:How to get ajax response using custom attribute in php loop如何在 php 循环中使用自定义属性获取 ajax 响应
【发布时间】:2021-09-24 09:24:48
【问题描述】:

我正在使用 ajax 和 php,我在循环中有以下按钮,我只想 在 jquery 中使用“attr”在正确的位置/div 上显示/获取数据(数字),但在我这边不起作用

这是我的循环按钮

<?php
foreach //

 <button class="btn likebutn_r" data-datac="1" data-datacw="<?php echo $WalletAddress; ?>" data-datacr="<?php echo $rev->id; ?>" data-datacoin="<?php echo $rev->coin_id; ?>" data-datasymbol="<?php echo $rev->symbol; ?>" id="show<?php echo "1";?>"  value="1" type="submit"><img src="<?php echo base_url(); ?>/assets/img/thumb.png" height="24" width="24"></button>
 
 <div id="<?php echo $rev->id; ?>">12(dynamic)</div>
endforeach//

这是我的 ajax 代码,如何使用自定义属性(通过 ReviewId)获取数据?提前致谢

<script type="text/javascript">
    $(document).ready(function () {
        $('.btn').click(function (e) {
            var vote = $(this).data('datac');
            var review = $(this).data('datacr');
            var CoinId = $(this).data('datacoin');
            var symbol = $(this).data('datasymbol');
            var WalletAddress = $(this).data('datacw');

            var datacrp = $(this).data('datacrp');
            $('#' + review).hide();
            e.preventDefault();
            $.ajax({
                type: 'POST',
                url: '<?php echo base_url();?>main/AddVote',
                data: {
                    vote: vote,
                    review: review,
                    CoinId: CoinId,
                    symbol: symbol,
                    WalletAddress: WalletAddress
                },
                success: function (data) {
                    alert(data);
                    $('#' + review).html(data);
                }
            });

        });
    });
</script>

【问题讨论】:

  • “不工作”是什么意思究竟?给我们一个线索。你做了什么调试?我们无法轻松运行此代码,因为它依赖于服务器端 PHP,以及我们无权访问且您未提供的数据。例如首先,当您运行var review = $(this).data('datacr'); 之后,review 的值是多少?您可以将其记录到控制台以查找,​​或使用 JS 调试器。代码看起来应该可以根据您所说的内容工作,但上下文中的某些内容在这里并不明显。
  • 除非实际的 PHP 代码是相关的,否则请发布最终的 HTML。您可以通过在浏览器中按 Ctrl+U 来查看它。接下来,请准确地说明您的代码失败的原因和位置。

标签: javascript php jquery ajax


【解决方案1】:

希望此代码对您有所帮助。 *提醒下面的js代码必须在php文件中实现,所以post url ajax会得到值。

$('body').on('click', '.btn', function(e){ 
  var allData = {
    "vote": $(this).data('datac'),
    "review": $(this).data('datacr'),
    "CoinId": $(this).data('datacoin'),
    "symbol": $(this).data('datasymbol'),
    "WalletAddress": $(this).data('walletaddress'),
  }
  e.preventDefault();

  $.ajax({
      type: 'POST',
      url:'test.com',
      data: allData,
      success: function(data) {
            $(this).attr('data-datac', data['vote']);
            $(this).attr('data-datacr', data['review']);
            $(this).attr('datacoin', data['CoinId']);
            $(this).attr('data-datasymbol', data['review']);
            $(this).attr('data-datacoin', data['review']);
            $(this).attr('data-datasymbol', data['symbol']);
            $(this).attr('data-walletaddress', data['WalletAddress']);
      }
  });
});
<button 
class="btn likebutn_r" 
data-datac="1" 
data-datacw="teste"
data-datacr="asdfasf" 
data-datacoin="asdfasdf"
data-datasymbol="asdfasdf"
data-datacrp="asfsa"
id="31"
data-walletaddress="dsaf"
value="1" 
type="submit">Hello</button>

<script
  src="https://code.jquery.com/jquery-3.6.0.min.js"
  integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
  crossorigin="anonymous"></script>

【讨论】:

  • 不工作,不隐藏现有
  • 只是为了清楚你想在ajax响应后修改数据?
  • 只想隐藏旧的/现有的数据
  • 我希望当我点击时“当前”数据应该隐藏,而“新”数据(通过 ajax 来自 db)应该显示,就是这样
  • 回答提示:如果你要发布一个可运行的代码sn-p,它实际上应该运行,而不是在你尝试使用它时立即失败
猜你喜欢
  • 2019-04-09
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
相关资源
最近更新 更多