2013-03-30 2 views
0

Мне нужно загрузить содержимое файла PHP с помощью jquery на основе того, что выбрано пользователем в одном или нескольких выбранных полях.Загрузка файла PHP и установка переменной на основе выбора

я могу использовать ...

$("#first-choice").change(function() { 
    $("#second-choice").load("getter.php?choice=" + $("#first-choice").val()); 
}); 

... создать переменную «выбор» и когда «первого выбора» поле задается пользователем.

Однако, если я хочу использовать 2 переменные на основе двух выпадающих селекторов, чтобы установить переменную 'choice' (на основе выбора # first-choice) и choice2 (на основе выбора # second- выбор).

Так что я хотел бы загрузить PHP файл что-то вроде выбора getter.php? = Первый выбор & Choice2 = вторым вариантами

+3

Так в чем ваш вопрос? –

+0

Если пользователь выбирает (последовательно), 'first-choice', а затем' second-choice', а другой выбирает 'second-choice' сначала, а затем' first-choice', тогда как вы будете решать, когда загружать страницу ??? Для загрузки страницы требуется другое взаимодействие с пользователем. – SachinGutte

+0

ОК, так вот что я пытаюсь сделать ... Я работаю с API, который имеет несколько XML-каналов. Первый фид дает стране, второй канал дает город, а третий канал дает место в городе. Канал страны будет составлять первый селектор вниз. Это легкий бит. Но когда пользователь выбирает страну, мне нужно загрузить второй селектор со всеми городами для этой страны, поэтому мне нужно вызвать API, чтобы получить все города, а затем, когда выбран город, мне нужно вызвать другой XML-канал, который возвращает местоположения этого города и отображение их в третьем селекторе. – user2227359

ответ

0

вот как я бы справиться с этой ситуацией ..

не обрабатывайте ваши избранные как идентификаторы. используйте один класс для всех параметров выбора, а затем привяжите .change() ко всем выборам с помощью селектора классов. если вы это сделаете, вы можете выполнить итерацию по числу X элементов select, использовать их идентификаторы в качестве переменной аргумента запроса и их значения в качестве каждого значения запроса. Я создал для вас демо-версию jsfiddle. Я также разместил код для вас ниже ....

Here is my demo on jsfiddle

<div> 
    <select class="php-options" id='first-choice' name='first-choice'> 
     <option value='1-0'>choose</option> 
     <option value='1-1'>1-1</option> 
     <option value='1-2'>1-2</option> 
     <option value='1-3'>1-3</option> 
     <option value='1-4'>1-4</option> 
     <option value='1-5'>1-5</option> 
    </select> 
</div> 
<div> 
    <select class="php-options" id='second-choice' name='second-choice'> 
     <option value='2-0'>choose</option> 
     <option value='2-1'>2-1</option> 
     <option value='2-2'>2-2</option> 
     <option value='2-3'>2-3</option> 
     <option value='2-4'>2-4</option> 
     <option value='2-5'>2-5</option> 
    </select> 
</div> 
<div id="request-url"></div> 





$(document).ready(function(){ 
//treat your select options with classes, 
//bind change event on each select 
$('.php-options').change(function(e){ 
    var urlValues = [], 
     parameterArgs = ""; 
    //loop selects to build parameters 
    $('.php-options').each(function(i,v){ 
     var optValue = $(this).val(), 
      optId=$(this).attr('id'), 
      parameter = ""+optId+"="+optValue; 
     urlValues.push(parameter); 
    }); 
    //build parameter string 
    parameterArgs =urlValues.join("&"); 

    //output query 
    $('#request-url').text('getter.php?'+parameterArgs);   
}); 

});