2014-04-20 4 views
0

Я хочу передать несколько переменных city1 и area1 (переменные JavaScript) в URL-адрес страницы PHP, но я застрял в части, показанной ниже. Что я делаю не так?Передача нескольких переменных на PHP-страницу

$("#list").load("selectcity.php?city1="+city1&"area1="+area1); 
$.ajaxSetup({ cache: false }); 
+0

Ваш '&' необходимо зайти внутрь цитат: 'selectcity.php? City1 =" + city1 "& area1 =" + area1' –

+0

@ AndyJones: *** ПРОБЛЕМА *** с кодом было то, что ' & 's были вне' '' 's! –

+0

спасибо всем. Работают сейчас – user3541562

ответ

3

Символ & должен быть внутри кавычек, а не за пределами кавычек. Это исправленный код:

$("#list").load("selectcity.php?city1="+city1+"&area1="+area1); 
$.ajaxSetup({ cache: false }); 

GET параметры разделяются символом &. Вы передаете 2 параметра в файл, разделенный на &. Знак ? в URL-адресе указывает, что следующие символы, следующие за ним, - это параметры GET.

Или вы можете использовать $.get, который очень прост в настройке и отлично работает как $.load:

$.get("selectcity.php", {"city1": city1, "area1": area1}, function(response){ 
$("#list").html(response); 
}); 
1

лучше не формировать строку запроса вручную, так как вы будете постоянно сталкиваться не столь заметных ошибок , JQuery предлагает способ автоматического построения строки запроса от объекта:

var ajaxData = { 
    city1: city1, 
    area1: area1 
}; 
$.get('selectcity.php', ajaxData, function(data) { 
    $('#list').html(data); 
}); 

(jQuery documentation)

Это требует немного больше коды, но гарантированно безопасно. Существует также .load(url, data) ярлык, но он отправит запрос POST вместо запроса GET, и это, вероятно, не то, что вы хотите.

Кроме того, я не уверен, что jQuery будет автоматически urlencode строками запроса вручную, поэтому метод конкатенации строк может ввести еще больше ошибок.

Смежные вопросы