Ajax Проблема, переменные не отправляются - PullRequest
1 голос
/ 14 июля 2010

Эта вещь ajax, над которой я работаю, не выполняет то, что я ей говорю.

На стороне клиента JS я предупреждаю все, что отправлено через запрос, а на стороне PHP я распечатываю все, чтоон получает.Эти два списка переменных не совпадают.Я не понимаю, почему.

Вот как я отправляю данные (по почте):

xhr.onreadystatechange = response;
xhr.open("POST", self.url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", data.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(data);
if(self.ALERT_SENT_DATA)
{
    alert("sending this to " + self.url + ":\n" + data);          
}

, и предупреждение выглядит так: (все равно нулю, кроме типа, allowid,и разрешение)

sending this to workers/permission.php:
type=save&permissionid=2&permission=1&info=0&users=0&pages=0&menus=0
&toolmanager=0&contributors=0&currentissue=0&backup=0&features=0&issues=0&ast=0
&research=0&sports=0&milestones=0&sportslist=0&crusher=0&permission=0&info=0
&users=0&pages=0&menus=0&toolmanager=0&contributors=0&currentissue=0&backup=0
&features=0&issues=0&ast=0&research=0&sports=0&milestones=0&sportslist=0&crusher=0

На стороне PHP я всегда могу получить тип переменных и allowid.Эти 2 всегда работают, и я не знаю почему.В этих двух нет ничего особенного, кроме того, что они первые.Однако все остальное после разрешения ВСЕГДА приходит в ноль.Независимо от того, что javascript говорит мне, что оно отправлено, на PHP все сводится к нулю.

Так, как я могу разобраться в этом и выяснить, где моя проблема?

1 Ответ

1 голос
/ 14 июля 2010
&permission=1&in.....her=0&permission=0

Последний выигрывает в $ _POST, $ _POST ['разрешение'] будет 0.

Вы можете предотвратить это, добавив [] после имени (& разрешение [] = 1 & разрешение [] =0), который даст вам массив в $ _POST ['missions '] с этими двумя значениями вместо строки.

Если вы не можете управлять именами, вам придется самостоятельно анализировать входные данные (Вы можете получить строку по $input = file_get_contents('php://input');

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