У меня есть $ .get (), звонят в страницу PHP, которая берет 4, ПОЛУЧАЮТ параметры. По некоторым причинам, несмотря на предоставление $ .get () называют все 4, это только передает первые два. Когда я смотрю на dev консоль в хроме, она показывает URL, который называют, и она только передает действие и dbname. Вот код:
$.get('util/util.php', { action: 'start', dbname: db, url: starturl, crawldepth: depth }, function(data) {
if (data == 'true') {
status = 1;
$('#0').append(starturl + "<ul></ul>");
$('#gobutton').hide();
$('#loading').show("slow");
while(status == 1) {
setTimeout("update()",10000);
}
} else {
show_error("Form data incomplete!");
}
});
и вот URL, который я вижу в консоли разработчика:
http://localhost/pci/util/util.php?action=start&dbname=1hkxorr9ve1kuap2.db
** ОТРЕДАКТИРУЙТЕ **, мне сообщили, что я должен закодировать URL, что я пытаюсь пройти через заголовок. Как я пошел бы о кодировании его в JavaScript и декодировании его в php?
Вы уверены, что переменные starturl
и depth
определены? Простого alert()
перед $.get() будет достаточно для проверки.
Что касается вашей правки, вы можете кодировать строки в JavaScript с помощью функции encodeURIComponent
. И декодировать их обратно в PHP с помощью urldecode
. Они обе принимают один строковый аргумент.
Вероятно, вам нужно будет проверить, правильно ли указаны ваши входные строки. Внутренне jQuery будет строить строку параметров из карты параметров, которую вы указали, используя свой метод param ()
. Этот метод создаст объект ключей и значений, который, скорее всего, будет невозможно проанализировать, если вы неправильно указали свои ключи и значения.
@ Феликс Клинг: jQuery автоматически кодирует ключи и значения строки параметров с помощью encodeURIComponent.