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

时间:2014-12-26 04:20:48

标签: php jquery ajax

我有一个带有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在表单中更新。

先谢谢

2 个答案:

答案 0 :(得分:0)

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

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

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

alert(JSON.stringify(data));

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

答案 1 :(得分:0)

试试这个

在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);
}
?>