在php中如何在AJAX调用中返回数组
我有一个表单有一个select选项,所以当我在select选项中选择一个类型时,我试图用数据库中的一些内容更新表单/表 为此,我做了一个类似这样的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
$("#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);
}
?>