jQuery load() return json value



我有一个页面,我在其中使用 jQuery load() 方法根据某些字段的 post 请求显示结果表。但是我需要这个 load() 来显示表,并在 PHP 脚本中满足条件时通知 javascript,所以可能需要一个 json 响应。我不知道是否可以使用 complete() 回调来实现这一点。我只需要一个变量就可以从我的PHP脚本传递到javascript。

我正在使用 load(),因为我相信其他 ajax 方法需要从 javascript 中完成 HTML 模板部分,对吗?

希望我说清楚了,谢谢

UPDATE1:

这是我的js代码:

$("#listaNegraView").load('procesos/funcionesAjax.php', 
            {accion: 'listaNegra', 
            nombres: $("#nombres").val(), 
            apellidoP: $("#apellidoP").val(),
            apellidoM: $("#apellidoM").val(),
            nacimiento: $("#nacimiento").val()},
            function(data){console.log(data);}
            );

这是PHP脚本:

case 'listaNegra':
            $_POST['nombres'] = mb_convert_encoding($_POST['nombres'], 'Windows-1252', 'UTF-8');
            $_POST['apellidoP'] = mb_convert_encoding($_POST['apellidoP'], 'Windows-1252', 'UTF-8');
            $_POST['apellidoM'] = mb_convert_encoding($_POST['apellidoM'], 'Windows-1252', 'UTF-8');
            $listaNegra = $personaDB->existsPersonaListaNegra($_POST);
$pct100 = false;
            if(!empty($listaNegra) && is_array($listaNegra)){
                foreach($listaNegra as &$persona){
                    $persona['match'] = '';
                    $porcentaje = 80;
                    if(strtolower($persona['nombres']) == strtolower($_POST['nombres'])){
                        $persona['match'] .= 'name';
                        $porcentaje += 10;
                    }
                    if($_POST['nacimiento'] == $persona['fecha_nacimiento']){
                        $persona['match'] .= 'date';
                        $porcentaje += 10;
                    }
                    $persona['porcentaje'] = $porcentaje;
if($porcentaje == 100)
                        $pct100 = true;
                }
                unset($persona);
            }
    include(ROOT.RUTA_TPL.'ventas/listanegra.tpl.php');
    break;

更新 2:

具体来说,我想传递给jasvascript的条件是变量$pct 100

您"直接"输出HTML代码,因此我认为,作为一种快速解决方法,您应该在隐藏字段/dom元素中编写$pct 100,然后在javascript代码中使用完整的回调访问它。

这是我建议的一个例子

$("#listaNegraView").load(
    'procesos/funcionesAjax.php', 
    {accion: 'listaNegra', 
     nombres: $("#nombres").val(), 
     apellidoP: $("#apellidoP").val(),
     apellidoM: $("#apellidoM").val(),
     nacimiento: $("#nacimiento").val()
    },
    function(data){
        $('#where-to-put-html-code').html(data);
        var pct100 = $('#where-to-put-html-code #hidden-field-id').val() == '1' ? true : false;
    }
);

由提问者的建议添加的答案。

最新更新