2016-06-24 4 views
1

У меня действительно странная проблема с AJAX. Это фрагмент файла с JS кода и метода пост, который посылает Params в PHP файл с помощью AJAX:Функция успеха Ajax не вызывается с требованием инструкции

var params = $('#add').serializeArray(); 
 

 
$.post('code/bg/adding_c.php', params, function(ret) { 
 
    //body of success function 
 
}, 'json');

И это фрагмент кода PHP (adding_c.php):

<?php 
 
\t require "functions.php"; 
 
\t 
 
\t //irrelevant operations 
 
\t 
 
\t $return = array(
 
\t \t 'status' => $status, 
 
\t \t 'msg' => $msg, 
 
\t \t 'id' => $id 
 
\t); 
 
\t 
 
\t echo json_encode($return); 
 
?>

Все работает Whe n Я комментирую или удаляю строку с инструкцией require, но когда она активна, функция успеха не запускается.

  1. JS post метод отправляет правильные параметры.
  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) 
 
{ 
 
\t global $conn; 
 
\t $result = $conn->query($query); 
 
\t return $result; 
 
} 
 

 
function cleanSQL($conn, $string) 
 
{ 
 
\t return htmlentities(fixSQL($conn, $string), ENT_COMPAT, 'UTF-8'); \t 
 
} 
 

 
function fixSQL($conn, $string) 
 
{ 
 
\t if(get_magic_quotes_gpc()) 
 
\t \t $string = stripslashes($string); 
 
\t 
 
\t return $conn->real_escape_string($string); \t 
 
} 
 

 
function fPassword($pass) 
 
{ 
 
\t $salt1 = 'salt1'; 
 
\t $salt2 = 'salt2'; \t 
 
\t $token = hash('ripemd128', "$salt1$pass$salt2"); 
 
\t 
 
\t return $token; 
 
} 
 

 
?>

Edit2.

Ошибок нет, и когда я вставляю функции из functions.php в index.php, все работает нормально. Я не знаю, что делать сейчас. Кажется, что слово здесь является проблемой. Я не могу добавить эти функции в каждый файл, в котором они мне нужны.

+0

Какое содержимое у вас есть в 'functions.php'? –

+0

Связь с базой данных и функциями, которые я использую во многих файлах. Я могу опубликовать его код, но когда я копирую его в add_c.php, все работает. –

ответ

0

Возможно, это ошибка в пределах functions.php.

EDIT: Если вы не установили display_errors = On в файле php.ini, используйте эти строки в коде:

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'; 

ошибка.PHP

require "functions.php"; 

//irrelevant operations 

$return = array(
    'status' => $status, 
    'msg' => $msg, 
    'id' => $id 
); 

echo json_encode($return); 

Выполнить это в окне браузера, и это должно дать вам представление о том, что вы имеете дело с.

+0

Ошибок нет, и когда я вставляю функции из functions.php в index.php, все работает нормально. Я не знаю, что делать сейчас. Кажется, что слово здесь является проблемой. Я не могу добавить эти функции в каждый файл, в котором они мне нужны. Это весело. –

 Смежные вопросы

  • Нет связанных вопросов^_^