Самая странная ошибка в мире (PHP $ _GET, $ _POST, $ _REQUEST и ajax) - PullRequest
0 голосов
/ 11 июля 2010

Надеюсь, ты сможешь мне помочь.Я сыт по горло попытками вещей без какого-либо решения и php, это просто сводит меня с ума.Я ищу помощь, потому что у меня есть HTML-документ, где я использую Ajax благодаря JQuery API.Внутри этого файла в функции js у меня есть:

$.ajax({ type: "GET", url: "c.php", data: "dia="+matriz[0]+"&mes="+matriz[1]+"&ano="+matriz[2]+"&diaa="+matriz2[0]+"&mess="+matriz2[1]+"&anoo="+matriz2[2]+"&modo=0&semana=0", success: Mundo, error: function(e){ alert('Error: ' + e); } });

Этот код позволяет мне отправлять информацию, которую я хочу, в файл c.php, где у меня есть:

include('funciones.php'); include('config.php');</p> <pre><code> $mierda = array(); $mierda[0] = $_GET['modo']; $mierda[1] = $_GET['dia']; $mierda[2] = $_GET['mes']; $mierda[3] = $_GET['ano']; $mierda[4] = $_GET['diaa']; $mierda[5] = $_GET['mess']; $mierda[6] = $_GET['anoo']; $mierda[7] = $_GET['semana'];

Как видите, все очень просто.Моя сумасшедшая проблема в том, что с firebug я видел, что данные отправляются хорошо, но по какой-то причине я не могу их использовать.Я пробовал с $ _Get, $ _post и $ _request и всегда с той же проблемой.Но это может быть странно ... Если я положу:

echo json_encode($mierda);

, то чудесным образом php возвращает данные, которые я передал, так что в заключение я имею:

  1. Я могуотправить данные в файл php хорошо
  2. Я могу распечатать все данные, которые я отправил хорошо, просто доступ к yo $ _GET, $ _POST, $ _REQUEST
  3. Я не могу использовать любое значение отдельнокак $ _GET ['dia']

Что там не так?

PS.Включаемые php-файлы - это функции, которые обращаются к моей базе данных, поэтому они не взаимодействуют с ними.

Ответы [ 4 ]

5 голосов
/ 11 июля 2010

Ваши данные не имеют URL-кодировки. Попробуйте сделать что-то вроде этого,

$.ajax({ type: "GET", 
         url: "c.php", 
         data: {"dia":matriz[0], "mes":matriz[1] ....},    
         success: Mundo, 
         error: function(e){ alert('Error: ' + e); } 
});
0 голосов
/ 12 июля 2010

Я закодировал данные, как сказал ZZColer, и ошибка все еще.

Starx, речь не идет о возврате.

digitalFresh, на самом деле ошибка из-за PHPможно скопировать массив $ _POST, $ _GET в новый массив и распечатать всю эту информацию, но если я добавлю после всех таких вещей, как:

If (mierda [0] == 0) {... Элемент пуст!и если я пытаюсь напрямую $ _GET ['dia'], он говорит, что этот элемент не существует в массиве.Также я пробовал $ _GET [dia] или $ _GET [0] без решения.

PD:

Я не знаю как, но ПРОБЛЕМАРЕШЕНО!

Спасибо всем!

0 голосов
/ 11 июля 2010

У тебя сумасшедшая проблема. По вашему вопросу:

$mierda = array();
$mierda[0] = $_GET['dia']; //... and so on
echo json_encode($mierda);

работает, пока:

echo $_GET['dia'];

оленья кожа. Попробуйте:

$mierda = array();
$mierda[0] = $_GET['dia'];
echo $mierda[0];

echo $_GET['dia'];

Он покажет вам, в чем проблема в PHP или в JavaScript.

0 голосов
/ 11 июля 2010

Если вы возвращаете значение json, используйте json для его чтения.

См. http://api.jquery.com/jQuery.getJSON/

http://pinoytech.org/blog/post/How-to-Use-JSON-with-jQuery-AJAX

Вот пример для чтения значения json

$('document').ready(function(){
    $('#submit).click(function(){
        $.post('your_php_page.php', {employee_id: '456'},
            function(data){
                console.log(data.first_name);
                console.log(data.last_name);
            }, 'json');
    })
});

Надеюсь, это поможет

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