如何在 PHP 中返回 AJAX 调用中的数组


how to return an array in AJAX call in php

我有一个有选择选项的表单,所以我在选择选项中选择类型时尝试用数据库中的一些内容更新表单/表格,

为此,我做了一个像这样的ajax调用。

$("#selectPlantilla").on("change",function(){
        var descripcion = $(this).val();
        //alert(descripcion);
         var url="http://index.php";
            var posting = $.post(url, {
            im_descripcion: descripcion,
            }).done(function (data) {
               alert(data);
            });
    }); 

然后我在同一个 inde.php 页面上验证了 php 中的调用,如下所示

if(isset($_POST['im_descripcion']))
{
   $db =  new dataBase();
  $result = $db->execute("SELECT * FROM `tableNmae` WHERE `descripcion` = '".trim($_POST['im_descripcion'])."'");
  $result = mysql_fetch_array($result);
 print_r($result);  
}

面临的问题是在警报窗口中它返回整个页面而不仅仅是我打印的$result,所以任何人都可以帮助我如何正确引导它,我使用数组中的值$result使用 JQuery 在表单中更新。

提前致谢

对于在 Ajax 中返回 PHP 数组数据,JSON 将使您的生活变得最简单。

$result = mysql_fetch_array($result);
echo(json_encode($result));

这将以 JavaScript 容易使用的格式返回数组。 试试这个看看它的内容:

alert(JSON.stringify(data));

使用JSON,您应该能够在JavaScript中获取数据或迭代数据

试试这个

在 Javascript 中

<script type="text/javascript">
var $ =jQuery.noConflict();
$(document).ready(function(){
     $('.dropdown_class').on('change', function() {
         var m_val = this.value;
         var datastring = "im_descripcion="+m_val;
               $.ajax({
                      type: "POST",
                      url: "lunchbox_planner.php",
                      data: datastring,
                      cache: false,
                      success: function(result) {
                         var v = $.parseJSON(result);
                         var l = v.length;
                             for(var i=0;i<l;i++){
                                var sh_d = "<div class='coco3'>"+v[i]+"</div>";
                                $('.mon_tea').append(sh_d);
                             }
                      }
                });
     });
});
</script>
<div class="mon_tea">

在 PHP 中

<?php
if(isset($_POST['im_descripcion'])) {
   $db =  new dataBase();
  $result = $db->execute("SELECT * FROM `tableNmae` WHERE `descripcion` = '".trim($_POST['im_descripcion'])."'");
  while($row_sh = mysql_fetch_array($result)){
    $all_incr[] = $row_sh['col_name'];
  }
  echo json_encode($all_incr);
}
?>