2012-02-25 2 views
2

Решенный - см внизу постаAjax PHP скрипт возвращающий включает ошибку

Привет всем первый пост, поэтому я заранее извиняюсь, если формат не так точен; тем не менее здесь моя проблема.

У меня есть простая форма для добавления электронной почты пользователей в БД. Я использую ajax для отправки формы и php для обработки (добавления в БД) действительной формы.

Сценарий ajax корректно отправляет данные - я использую firebug для проверки данных формы, и мы проверяем, что PHP-скрипт, указанный в вызове ajax, правильно принимает данные.

Проблема заключается в том, что данные передаются обратно в функцию успеха ajax. У меня есть вызов include в php-скрипте для включения класса для подключения к моей базе данных и множество функций БД (запуск запросов, настройка таблиц БД, закрытие соединения с БД и т. Д. И т. Д.). Когда функция успеха ajax возвращает данные, в возвращаемые данные включается ошибка php 'missing include'.

Theories I have that is causing this: 

1.) По какой причине, вызов включить в сценарий PHP обрабатывается, когда функция Ajax успеха возвращает данные

2.) Вызов включают не обрабатывается на стороне сервера и действует как возвращающая строка

Вопрос: может ли метод включения использовать в методе, который я использую?

Надеюсь, я включил достаточно информации, если не сообщите, пожалуйста, что еще нужно. спасибо за любую помощь. =]

Вот код:

AJAX SCRIPT:

$.ajax({ 
    type: "POST", 
    url: "xxxx/include/module/mailing_list/mailvalidation.php", 
    data: formData, 
     beforeSend: function(){ 
     //validation code for form\\ 
     }, 
     success: function(data){ 
     alert("successful submissio: " + data); 
     } 
)}; 

PHP SCRIPT:

include("xxxx/library/database/class_lib_db.php"); 
cleanPost(); 
if (userInDB){ 
    insertUserInfo(); 
    echo "You ajax post was submitted " . $_POST['first_name'] . " " . $_POST['last_name']; 
} else { 
    echo "Your already registred " . $_POST['first_name'] . " " . $_POST['last_name']; 
} 

Здесь ошибка возвращается в данных АЯКС:

Предупреждение: включить (xxxx/library/database/class_lib_db.ph р) [function.include]: не удалось не удалось открыть поток: Нет такого файла или каталога в /home/xxxx/public_html/xxxx/include/module/mailing_list/mailvalidation.php на линии 77

Предупреждение: include (xxxx/library/database/class_lib_db.php) [function.include]: не удалось открыть поток: нет такого файла или каталога в /home/xxxx/public_html/xxxx/include/module/mailing_list/mailvalidation.php on line 77

Предупреждение: include() [function.include]: Ошибка открытия 'xxxx/library/database/class_lib_db.ph p 'для включения (include_path ='.:/usr/lib/php:/usr/local/lib/php ') в /home/xxxx/public_html/xxxx/include/module/mailing_list/mailvalidation.PHP на линии 77

ПОСТАНОВИЛИ

Я редактирования включаемого вызов в PHP скрипт

перед: include("xxxx/library/database/class_lib_db.php");

после: include("../../../../xxxx/library/database/class_lib_db.php");

ПРИМЕЧАНИЕ : мне никогда не приходилось отказываться Renče мои включать вызовы с «../» перед использованием только AJAX

+0

Эта ошибка означает, что путь' aokcdc/library/database/class_lib_db.php' не существует – scibuff

+0

Эй, прошу, спасибо за ответ. Я знаком с ошибкой parse parse. Я столкнулся с этим много. Однако я бы хотел, чтобы все было так просто. Я подтвердил, что файл include действительно существует. Перед реализацией ajax я отправил форму, используя основные методы отправки jQuery, и у меня не было проблем с включением каких-либо других ... каких-либо других мыслей? –

ответ

1

Попробуйте изменить путь в включаемую функцию

include("../../../library/database/class_lib_db.php"); 

Если вы делаете запрос Аякса «хххм/включить/модуль/mailing_list/mailvalidation.php ", оператор include в скрипте PHP фактически указывает на« xxxx/include/module/mailing_list/xxxx/library/database/class_lib_db.php »

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