jQuery load()返回json值

时间:2014-01-16 16:40:05

标签: javascript php jquery load

我有一个页面,我使用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的条件是变量$ pct100

1 个答案:

答案 0 :(得分:2)

您“直接”输出HTML代码,因此我认为,作为一种快速解决方法,您应该在隐藏字段/ dom元素中编写$ pct100,然后使用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;
    }
);

答案是根据提问者的建议添加的。