JQuery AJAX ошибка - PullRequest
       1

JQuery AJAX ошибка

1 голос
/ 11 ноября 2010

Хорошо, мой Ajax-вызов выглядит следующим образом:

var poststring = "id_Client=" + id_client + "&id_File=" + id_file;
        alert(poststring);
        $.ajax({
            type: "POST",
            url: "addclpermission.php",
            data: poststring,
            error: function(xhr, textStatus, errorThrown){
                alert("Error: " +textStatus)
            }
        });

Все работает нормально до $ .ajax (). Если я использую alert (poststring), результат будет выглядеть следующим образом:

id_Client=7&id_File=32

Используя firebug, я обнаружил, что URL «addclpermission.php» фактически запрашивается, но затем «прерывается». Путь правильный, хотя, если я скопирую URL из firebug и вызову его напрямую, ошибка не отобразится. Предупреждение в опции 'error' возвращает "Error: error"

Файл addclpermission.php:

<?php
require_once("../allgemein/includes/dbconnect.php");
$id_File = $_POST['id_File'];
$id_Client = $_POST['id_Client'];
$sql = "INSERT INTO permission (id_File,id_Client) VALUES (".$id_File.",".$id_Client.")";
mysql_query($sql);
?>

Я почти уверен, что этот код когда-то работал и что я не сильно изменился.

Есть идеи?

Спасибо!

Редактировать: Я не думаю, что ошибка в сценарии php, у меня есть несколько вызовов ajax на несколько сценариев php, но все они терпят неудачу одинаково.

Редактировать 2: Теперь это работает! Ну, хотя бы половина этого. Запрос по-прежнему прерывается, но данные вставляются в базу данных. Но, как я уже сказал, это не единственный ajax-вызов, остальные не работают, и этот прерывается. Поэтому мне бы очень хотелось узнать, что послужило причиной этой ошибки и как я могу исправить ее навсегда. Спасибо!

Ответы [ 6 ]

2 голосов
/ 11 ноября 2010

Данные вставляются в mysql, несмотря на ошибку?Если это так, можете ли вы добавить echo в файл addclpermission.php, чтобы он возвращал «success» и / или «fail» для mysql_query ()?Как насчет того, чтобы раздеть этот php файл, чтобы просто повторить "привет" ???

1 голос
/ 18 июля 2012

Я почти уверен, что ваша проблема в том, что вы не возвращаете ожидаемый dataType для вызова .ajax, если вы просто задали тип данных (например, json или text):

$.ajax({
        type: "POST",
        url: "addclpermission.php",
        data: poststring,
        dataType: "json",
        error: function(xhr, textStatus, errorThrown){
            alert("Error: " +textStatus)
        }
    });

Затем просто отобразите ожидаемый тип данных, чтобы сервер отвечал, и ajax будет знать, что запрос был успешным.

<?php
// if your dataType is json
echo json_encode(true);

// if your dataType is text
echo ' ';

// exit so the server can return the request
exit;
1 голос
/ 11 ноября 2010

Когда я делаю jQuery Ajax, я устанавливаю данные как объект Javascript, который затем сериализует jQuery. Вам повезет больше, если вы предоставите data: свойство как объект:

data: {
    id_Client: id_client,
    id_File: id_file
}
1 голос
/ 11 ноября 2010

Я думаю, что ошибка может быть в dbonnect.php или addclpermission.php.Сохраните это в addclpermission.php (сделайте резервную копию вашего текущего файла) и перейдите к нему напрямую:

<?php
require_once("../allgemein/includes/dbconnect.php");
$id_File = 1;
$id_Client = 1;
$sql = "INSERT INTO permission (id_File,id_Client) VALUES (".$id_File.",".$id_Client.")";
mysql_query($sql);
?>

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

1 голос
/ 11 ноября 2010

Во-первых, я бы попробовал просто запросить addclpermission.php в браузере и посмотреть, что произойдет.

Затем, если это сработает, что если вы просто сделаете так, чтобы addclpermission.php содержал некоторый текст, а не содержимое PHP вообще,Затем для каждого работающего этапа постепенно добавляйте контент (например, сначала включите).

0 голосов
/ 27 марта 2013

проблема -> 1001 *

require_once("../allgemein/includes/dbconnect.php");

удалите эту строку в php и напишите весь код здесь

но я не знаю почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...