在php中如何在AJAX调用中返回数组

在php中如何在AJAX调用中返回数组,php,jquery,ajax,Php,Jquery,Ajax,我有一个表单有一个select选项,所以当我在select选项中选择一个类型时,我试图用数据库中的一些内容更新表单/表 为此,我做了一个类似这样的ajax调用 $("#selectPlantilla").on("change",function(){ var descripcion = $(this).val(); //alert(descripcion); var url="http://index.php"; var

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

为此,我做了一个类似这样的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中

在PHP中


ur index.php中有什么?@Glizzweb它是一个很长的文件,我如何才能将它发送给您。在这里发布将使问题变得非常混乱,因此它将返回整个文件。例如,您创建另一个文件,如test.php,在其中可以放置ifisset$\u POST['im\u description']{$db=new dataBase;$result=$db->executeSELECT*FROM tableNmae`where description='。trim$\u POST['im u description'].;$result=mysql\u fetch\u array$result;print\r$result;}`它将单独返回您的结果understand@Glizzweb所以我不可能在同一页上做这件事,是的,我明白,到目前为止,我一直在做这样的事情,我的意思是一个只有php函数没有html标记的页面etc@Glizzweb我验证了页面:PI知道json,但这里的问题是其他的,不仅数组中的返回值,还有html标记等等,我不知道want@Vikram在响应AJAX调用时,不要显示任何HTML。使用htmlspecialchars函数循环遍历数组$result并转义HTML标记应该可以做到这一点。请在将其编码为JSON之前执行此操作。@Manmaru um我刚刚验证了完整的页面,如ifisset$\u POST['im_description']{return JSON}否则{打印页面的其余部分}这是正确的方法吗?如果您已经验证了整个页面,那么可以像上面那样返回JSON。另外,如果您的代码在回显JSON后什么也不做,请使用exit0;确保没有其他输出不是一个坏主意。
<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
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);
}
?>