使用require指令不调用Ajax成功函数

时间:2016-06-24 10:49:48

标签: javascript php jquery ajax require

我对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指令评论或删除该行时,一切正常,但当它处于活动状态时,不会触发成功函数。

  1. JS post方法发送正确的参数。
  2. Php文件接收它,执行正确的操作并将正确的数据返回给js脚本(我可以在FireBug中看到它)。
  3. 不会触发成功功能。
  4. 为什么与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时,一切正常。我现在不知道该怎么办。这似乎需要单词是一个问题。我无法将这些函数添加到我需要它们的每个文件中。

1 个答案:

答案 0 :(得分:0)

functions.php内可能是错误。

编辑:如果您未在php.ini文件中设置display_errors = On,请在代码中使用以下行:

ini_set("display_errors", "1");
error_reporting(E_ALL);

另外,您确定它不是解析/语法错误吗?如果是这种情况,您可以做一些事情:

  1. 确保使用的是检查语法的IDE(例如,Netbeans)。

  2. 将文件分成两部分,如下所示:

  3. <强>的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);
    

    在浏览器窗口中运行它,这可以让您了解您正在处理的内容。