javascript - jQuery load() 返回 json 值

标签 javascript php jquery load

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

我使用 load() 是因为我相信其他 ajax 方法需要从 javascript 执行 HTML 模板部分,对吗?

希望我说清楚了,谢谢

更新 1:

这是我的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

最佳答案

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

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

关于javascript - jQuery load() 返回 json 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167611/

相关文章:

jquery - 触发更新面板中控件的单击问题

javascript - 将 promise 组合成 promise.all

javascript - 我可以在 jQuery 中再次调用函数 Ready() 吗?

php - Laravel 5 Session_driver 数据库 token 不匹配

php - Laravel 在所有 api 路由中使用 Web 身份验证重定向到主页

javascript - 无法识别 Mozilla Firefox 中的右键单击事件

javascript - 如何使用 jQuery 变量隐藏 HTML 表格行

javascript - 删除某个位置的字符,Codemirror

javascript - 使用 Canvas 为饼图等填充圆制作动画

php - 为什么编辑按钮仅适用于表 php mysql 中的第 1 行