[英]Ajax success function isn't called with require instruction
我有非常奇怪的AJAX问题。 这是带有js代码和post方法的文件片段,它通过AJAX将params发送到php文件:
var params = $('#add').serializeArray(); $.post('code/bg/adding_c.php', params, function(ret) { //body of success function }, 'json');
这是php代码的片段(adding_c.php):
<?php require "functions.php"; //irrelevant operations $return = array( 'status' => $status, 'msg' => $msg, 'id' => $id ); echo json_encode($return); ?>
当我使用require指令评论或删除该行时,一切正常,但当它处于活动状态时,不会触发成功函数。
为什么与AJAX无关的指令会导致这个问题?
编辑。
的functions.php:
<?php $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'dbname'; $conn = new mysqli($host, $user, $pass, $db); function querySQL($query) { global $conn; $result = $conn->query($query); return $result; } function cleanSQL($conn, $string) { return htmlentities(fixSQL($conn, $string), ENT_COMPAT, 'UTF-8'); } function fixSQL($conn, $string) { if(get_magic_quotes_gpc()) $string = stripslashes($string); return $conn->real_escape_string($string); } function fPassword($pass) { $salt1 = 'salt1'; $salt2 = 'salt2'; $token = hash('ripemd128', "$salt1$pass$salt2"); return $token; } ?>
EDIT2。
没有错误,当我将函数从functions.php粘贴到index.php时,一切正常。 我现在不知道该怎么办。 这似乎需要单词是一个问题。 我无法将这些函数添加到我需要它们的每个文件中。
这可能是functions.php
一个错误。
编辑:如果你没有在php.ini文件中设置display_errors = On
,请在代码中使用以下行:
ini_set("display_errors", "1");
error_reporting(E_ALL);
此外,您确定它不是解析/语法错误吗? 如果是这种情况,您可以做一些事情:
确保使用的是检查语法的IDE(例如,Netbeans)。
将文件分成两部分,如下所示:
的index.php
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
include 'error.php';
error.php
require "functions.php";
//irrelevant operations
$return = array(
'status' => $status,
'msg' => $msg,
'id' => $id
);
echo json_encode($return);
在浏览器窗口中运行它,这应该可以让您了解您正在处理的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.