Ошибка PHP / jQuery AJAX JSON - PullRequest
       1

Ошибка PHP / jQuery AJAX JSON

0 голосов
/ 24 августа 2011

Когда я пытался получить код со страницы PHP с помощью jQuery Ajax, я обнаружил странную ошибку: «Неопределенная переменная: ошибки»

<?php
$errors = array("already_signed" => "You are already signed in", "field_empty" => "All fields must be filled", "long_username" => "Username length must be less then 40 symbols", "incorrect_email" => "Your mail is incorrent", "user_exists" => "User with such username already exists", "account_not_found" => "Account not found", "passwords_arent_same" => "Passwords must be the same");
Function check_post() {
    $answer = array("ok" => "false", "answer" => $errors["field_empty"]);
    echo json_encode($answer);
}

check_post();
?>

Если я выведу эхо без функции - все будетХорошо.Спасибо за любую помощь

Ответы [ 2 ]

4 голосов
/ 24 августа 2011

Кажется, вам не хватает хотя бы одного }. Таким образом, определение вашей функции не имеет близких значений, поэтому оно читается как бесконечно рекурсивный вызов.

Кроме того, у вас есть $errors, который определяется вне вашей функции. PHP не позволяет «более низким» областям кода видеть переменные, определенные в более высоких областях. Вам нужно объявить $ errors как глобальное в функции:

<?php

$errors = array(....);
function check_post() {
   global $errors;
   $answer = ...
   ...
}

check_post();
3 голосов
/ 24 августа 2011

Вы пытаетесь получить доступ к глобальной переменной из функции. Для этого вам нужно использовать ключевое слово global:

<?php
$errors = array("already_signed" => "You are already signed in", "field_empty" => "All fields must be filled", "long_username" => "Username length must be less then 40 symbols", "incorrect_email" => "Your mail is incorrent", "user_exists" => "User with such username already exists", "account_not_found" => "Account not found", "passwords_arent_same" => "Passwords must be the same");
function check_post() {
    global $errors;
    $answer = array("ok" => "false", "answer" => $errors["field_empty"]);
    echo json_encode($answer);
}
check_post();
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...