json从php到jquery的相同函数
json from php to jquery same function
我正在使用Codeigniter。
我需要访问两次php函数,但第一次我不必回显json_encode数组。。。。当我从js文件调用它时,我应该第二次回显它。我该怎么做?
因此,php文件:
function filter(){
if (function call is not from js file ) {
//using $_POST variable to get info from the form
dont echo json
}elseif (function call is from the js file) {
echo json_encode($data);
//but $data should be $_POST info too, but in this case $_POST WOULD
//BE EMPTY and I'm sending no data to ajax
}
}
来自js文件:
$.ajax({
type: "GET",
url: "filter",
dataType: 'json',
success: function(data){
alert(data); },
error: function(data){
alert('error'); }
您可以进行一些搜索,找到许多不同的选项来检测PHP的AJAX请求。例如:
- http://davidwalsh.name/detect-ajax
- 检测ajax请求
一旦你确定它来自AJAX,你就可以传递一个像pass
这样的参数,并根据传递给它一个1或2。
真正的问题是这个功能做得太多了。如果他们做不同的事情,你应该有两个不同的功能。当你开始引入这样的条件时,你违反了单一责任原则(SOLID的一部分),并要求在未来出现问题。
但是,为了完整性,您可以这样做,在大多数情况下,应该检测AJAX请求:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// This is PROBABLY an AJAX request
if ($_POST['pass'] == 1) {
// First Pass
} else if ($_POST['pass'] == 2) {
// Second pass
}
}
注意:这可以由客户端操作,所以不要依赖它来驱动任何需要安全的东西。顺便说一句,我并不提倡这种方法——你真的应该把关注点分开。
相关文章:
- 执行ajax成功函数-jQUERY
- 函数jquery.html()不提供数据属性集值
- 将变量放入ajax函数JQuery
- 函数jquery的未定义返回
- 如何在嵌套函数jquery上保持变量的值不变
- 用我的函数jquery给出数据/参数
- Firefox在调用函数(jquery)时冻结
- 在传递节时触发一个函数 - jquery
- 循环执行数组函数jQuery
- 在函数中调用另一个函数JQuery
- 对象不是函数-Jquery/JavaScript
- TypeError:对象不是函数-jquery
- 获取函数jQuery设置的属性
- 从函数jquery获取更新的变量值
- 切换而不是悬停函数jQuery
- 函数jQuery.animation()运行了两次行,但不起作用
- 使用函数 jQuery 获取变量
- 自执行函数 jquery 与 JavaScript 的区别
- 从回调函数 -JQuery 获取返回值
- 一个接一个地执行函数 JQUERY