将数组从php返回到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

我想将一个数组从php函数返回到我的ajax调用。之后,我想使用页面中的数组值来调用ajax

这是我的ajax调用:

        $(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>");