将数组从php返回到ajax成功
我想将一个数组从php函数返回到我的ajax调用。之后,我想使用页面中的数组值来调用ajax 这是我的ajax调用:将数组从php返回到ajax成功,ajax,arrays,json,Ajax,Arrays,Json,我想将一个数组从php函数返回到我的ajax调用。之后,我想使用页面中的数组值来调用ajax 这是我的ajax调用: $(function() { $("#find").click(function() { var url = $("#form_url").val(); var dataString = 'url=' + url; $.ajax({ type
$(function() {
$("#find").click(function() {
var url = $("#form_url").val();
var dataString = 'url=' + url;
$.ajax({
type: "POST",
url: "/ajax/add_url.php",
data: dataString,
}).done(function( result ) {
myresult(result);
});
return false;
});
});
function myresult(result) {
var result_lines = result.split("<splitter>");
if (result_lines[0] == '1') {
$('#content_error').html(result_lines[1]).fadeIn(250);
$('#content_error').delay(1500).fadeOut(500);
} else if (result_lines[0] == '2') {
$('#content_success').html('Succesfully get images').fadeIn(250);
$('#url_result').delay(500).fadeIn(500);
$('#content_success').delay(1500).fadeOut(500);
alert(eval(data));
}
return true;
$(函数(){
$(“#查找”)。单击(函数(){
var url=$(“#form#url”).val();
var dataString='url='+url;
$.ajax({
类型:“POST”,
url:“/ajax/add_url.php”,
数据:dataString,
}).完成(功能(结果){
我的结果(result);
});
返回false;
});
});
函数myresult(结果){
var result_line=result.split(“”);
如果(结果_行[0]='1'){
$('content_error').html(结果行[1]).fadeIn(250);
$('content_error')。延迟(1500)。淡出(500);
}如果(结果行[0]='2'){
$('content_success').html('successfully get images').fadeIn(250);
$('url_result').delay(500).fadeIn(500);
$('content'u success')。延迟(1500)。淡出(500);
警报(评估(数据));
}
返回true;
}
这是我的php脚本:
if($_POST['url']) {
$url = $Db->escape($_POST['url']);
$html = file_get_html($url);
$count = 0;
$goodfiles = array();
foreach($html->find('img') as $element) {
$pic = url_to_absolute($url, $element->src);
if(!empty($pic)){
$pics = parse_url($pic);
list($width, $height, $type, $attr) = getimagesize($pic);
if($pics["scheme"]=="http" && $width >= 300 && $height >= 250) {
array_push($goodfiles,$pic);
$_SESSION['pictures'] = $goodfiles;
$count++;
}
}
}
if($count == 0){
$_SESSION['count'] = 'empty';
echo "1<splitter>";
echo "No items found with the correct size";
}else{
$_SESSION['count'] = $count;
echo "2<splitter>";
echo json_encode($_SESSION['pictures']);
}
$_SESSION['url'] = $url;
$html->clear();
$empty = 1;
}
}
if($\u POST['url'])){
$url=$Db->escape($_POST['url']);
$html=file\u get\u html($url);
$count=0;
$goodfiles=array();
foreach($html->find('img')作为$element){
$pic=url\u至绝对值($url,$element->src);
如果(!空($pic)){
$pics=parse_url($pic);
列表($width,$height,$type,$attr)=getimagesize($pic);
如果($pics[“scheme”]=“http”&&&$width>=300&&$height>=250){
数组推送($goodfiles,$pic);
$\会话['pictures']=$goodfiles;
$count++;
}
}
}
如果($count==0){
$\会话['count']='empty';
回声“1”;
回显“未找到大小正确的项目”;
}否则{
$\会话['count']=$count;
回声“2”;
echo json_编码($_会话['pictures']);
}
$\会话['url']=$url;
$html->clear();
$empty=1;
}
}
当ajax调用成功时,我在数组上使用json_encode在php页面上使用它。但是我不知道如何在ajax调用的页面上将这个数组转换成javascript
现在我收到以下内容:
[“image.jpeg”、“image.jpg”]
我想把它放在一个javascript数组中…我不知道如何使用$.ajax,但这里有一个替代方案 替换这个
$.ajax({
type: "POST",
url: "/ajax/add_url.php",
data: dataString,
}).done(function( result ) {
myresult(result);
});
与
我再说一遍,这是我的选择,所以别着急 此行的错误如下:
var result_lines = result.split("<splitter>");
var result\u line=result.split(“”);
result
(AJAX响应)是一个对象或数组(取决于JSON的性质),但您试图对其调用字符串方法(split()
)
这将导致JS控制台出错-始终检查控制台
最后,
eval()。尽量避免这种情况。您的PHP函数中应该只有一个echo,Firebug会在ajax调用时向您显示请求和响应。您可能会发现这非常有用。为什么会改变任何事情?拆分器用于确定错误(拆分器1)或成功调用(拆分器2)。可以使用函数结果行调用结果。因此,可以使用$('#id').html(result_lines[1])调用json_encode echo。。。。但是html是正确的方法吗?!那么如何将数组放入javascript中呢?!我不太明白。事实仍然是result
是一个对象或数组,它们都没有方法split()
。您是说result
不是对象或数组,而是作为字符串返回的吗?jQuery通常识别JSON响应并将其解析为JSON响应。您可以通过在AJAX请求中添加一个参数来实现这一点:dataType:'json'
如果它是一个数组,那么我的答案是-数组没有方法split()
。如果它已经是一个数组,则无需执行任何操作-它已经可用,例如,result[0]
将获取数组的第一个键。(如果你确定它是一个数组而不是一个对象),我想把json_encode($test)的输出放在javascript变量中,这样我就可以在javascript中使用它了。例如:Var images=[“image.jpg”,“image.jpg”]现在json_encode($test)给了我[“image.jpg”,“image.jpg”],这就是oke。现在我需要知道如何将这个输出放到var图像中。var没有id或类,所以我不知道如何将其放在那里……但您已经在var-结果中找到了它。这是PHP输出的解析结果。
var result_lines = result.split("<splitter>");