首页 > 解决方案 > 如何在 PHP while 循环中显示 Ajax 响应

问题描述

我在 PHP while 循环中有以下输入框:

echo '<ul>';
  while ( $data = $supplier->result->fetch_assoc()) {
    $sid          =  (int) $data['sid'];
    $supplierName = output($data['supplierName']);
    $vid          = output($data['vid']);

    echo "
    <li>
      <input type='checkbox' name='sid[]' data-sid='$sid' value='{$sid}|$vid' class='supplierClass'> $supplierName
      <div class='allVehicle'></div>
    </li>
    ";  
  }
echo '</ul>';

现在,当我单击一个复选框时,它正在使用 jQuery/Ajax 调用另一个 PHP 页面,但没有显示结果。

jQuery/Ajax 代码:

$('.supplierClass').change(function() {    
   var sids = [];
   $('.supplierClass:checked').each(function(i,v) {
       sids.push($(v).val());
    });
    $.ajax({
      url         :   'process/get-vehicle.php',
      type        :   'POST',
      dataType    :   'html',
      data        :   {
        sid   :  sids,
      },
      beforeSend  :   function () {
          $(this).next('.allVehicle').html('Please wait...');
      },
      success     :   function ( result ) {
          $(this).next('.allVehicle').html(result);
      }
   });  
});

我认为问题出在这条线上,但不确定。

beforeSend  :   function () {
    $(this).next('.allVehicle').html('Please wait...');
},
success     :   function ( result ) {
    $(this).next('.allVehicle').html(result);
}

标签: javascriptphpjqueryajax

解决方案


像这样改变它,如果有效!

beforeSend  :   function () {
  $('.allVehicle').next().html('Please wait...');
},
success     :   function ( result ) {
  $('.allVehicle').next().html(result);
 //$('.allVehicle').next().text(result); if not workout as html then test it by passing text in it.
}

如果未完成,请访问https://api.jquery.com/next/此处。


推荐阅读