我有一个页面,我使用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
答案 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;
}
);
答案是根据提问者的建议添加的。