2016-05-11 3 views
0

Итак, у меня есть эта функция в PHP, которая получает атрибут и возвращает массив. Что-то вроде этого:динамически меняйте параметры выбора с помощью php

function getProvinces($countryID){ 
return arrayWithProvinces($countryID);} 

Everytime родитель выберите изменения, функция getProvinces() должна быть выполнена с использованием нового идентификатора и должно быть включено arrayWithProvince в качестве опции в ребенке выбрать.

Я использую jquery для обработки событий, как я нашел где-то. Мне нужно сделать что-то подобное.

  $("#selectCountry").change(function() { 

       var parent = $(this).val(); //get option value from parent 
       var prov = <?php echo json_encode($pagina->getProvinces(<PARENT>)); ?>; 
       list(prov); 

Моя проблема заключается в том, что я не знаю, как сказать getProvinces ($ CountryId) функция PHP, которая является новое значение родителя.

Заранее спасибо.

+0

Я думаю, вы должны использовать ajax для этого, а не php. – asurbernardo

+1

PHP-код оценивается только один раз на стороне сервера, и полученный HTML-код отправляется клиенту. Как сказал @asurbernardo, вы должны использовать запрос AJAX для совершения вызова на сервер. –

ответ

0

Насколько я знаю, вы не можете выполнять функцию без перезагрузки всей страницы (я имею в виду, что php должен перекомпилировать ее и передать ее клиенту).

Для этого вам необходимо использовать только JavaScript. Храните у вас arraylist в JS-коде и проверяйте его один раз после отправки формы (просто убедитесь).

0

Вам необходимо сделать запрос Ajax на сервер.

Посмотрите на это следующим образом: ваш Javascript/jQuery работает на стороне клиента (веб-браузер), и вы используете PHP на своем веб-сервере.

Для связи между браузером (jQuery) и сервером (PHP) вам необходимо сделать запрос Ajax.

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

+0

Справа. Я найду другой способ сделать это, спасибо. –

1

Вы должны использовать JavaScript для того, чтобы обновить часть вашей страницы с динамическим content.Below является примером использования #parent_select изменений Jquery в ajax function.When избранного с идентификатором вы называете PHP скрипт и вы добавляете возвращаемые данные (html ребенка выберите в примере) в div, который вы хотите.

Javascript часть будет что-то вроде этого:

$("#parent_select").change(function() { 

$.ajax({ 
    url: "your_script.php?cid="+$(this).val(), 
     success: function(html){ 
     $("#child_select_container").append(html); 
     } 
    }); 
}); 

И your_script.php код будет выглядеть примерно так:

<?php 
function getProvinces($countryID){ 
return arrayWithProvinces($countryID);} 

$countryID=(int)$_GET['cid']; 

$provinces=getProvinces($countryID); 

echo '<select id="child_select">'; 
foreach($provinces as $key=>$province){ 
echo '<option id="'.$key.'">'.$province.'</option>'; 
} 
echo '</select>; 

Я нету протестировали example.It только основные, как example.You должен быть в состоянии работать отсюда. Но если у вас есть какие-либо проблемы, дайте мне знать.

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