PHP не вернет ничего в ответ - PullRequest
0 голосов
/ 23 августа 2011

Я новичок в PHP и JQuery.

У меня есть эта очень простая функция PHP

function save($data)
{
    $allData = load();
    array_push($allData, $data);
    global $filePath;
    $fp = fopen($filePath, 'w+') or die("I could not open $filePath.");
    fwrite($fp, serialize($allData));
    echo "{status:\"success\" , result:" . (string)(count($allData) - 1) . "}";
    fclose($fp);
}

, который считывает массив с диска, собирает данные и возвращает результат. и у меня есть этот код JQuery:

  $jQuery.ajax({
            url: serverUrl,
            type: "GET",
            data: {method: "save", data: jQuery.param(pData)},
            cache: false,
            success: function (data) {
                alert("data");
            }
        });

Теперь дело в том, что если я вызову метод PHP через URL в Firefox, я получу результат, выведенный на экран справа, если я вызову этот метод с помощью кода jQuery, приведенного выше, он запишет в файл, но ничего не вернет , и я вижу в firebug под вкладкой «ответ» ничего. где я ошибся?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Вы оповещаете "data" вместо data onsuccess.

Попробуйте отразить правильно отформатированный JSON:

echo '{"status": "success", "result": "'. (string)(count($allData) - 1) .'"}';

Тогда предупредите что-то вроде:

alert(data.status);
0 голосов
/ 23 августа 2011
$jQuery.ajax({
            url: serverUrl,
            type: "GET",
            data: {method: "save", data: jQuery.param(pData)},
            dataType: 'json', //added by me
            cache: false,
            success: function (data) {
                alert("data");
            }
        });

и в вашем php используйте безопасный метод

$var  = array('status' => 'success', 'result' => count($allData) - 1 );
echo json_encode($var);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...