繁体   English   中英

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

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

  1. JS post方法发送正确的params。
  2. Php文件接收它,执行正确的操作并将正确的数据返回给js脚本(我可以在FireBug中看到它)。
  3. 成功函数未被触发。

为什么与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);

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

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

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

的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM