使用php动态更改选择选项

时间:2016-05-11 18:00:20

标签: javascript php jquery

好的,所以我在PHP中有这个函数,它获取一个属性并返回一个数组。像这样:

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

每次父选择更改时,应使用新ID执行函数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函数,这是父母的新值。

提前致谢。

3 个答案:

答案 0 :(得分:1)

你应该使用javascript来刷新页面的动态内容。下面是使用jquery的ajax函数的例子。当id为#parent_select的select更改时,你调用你的php脚本并在所需的div中追加返回的数据(示例中的子选择的html)。

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>;

我没有测试过这个例子。这只是一个基本的例子。你应该能够从这里开始工作。但如果你有任何问题请告诉我。

答案 1 :(得分:0)

据我所知,你不能在不重新加载整个页面的情况下执行该函数(我的意思是php应该重新编译并将其传递给客户端)。

您应该仅为此目的使用JavaScript。在JS代码中存储arraylist,并在表单提交时验证它(只是为了确定)。

答案 2 :(得分:0)

您需要向服务器发出Ajax请求。

以这种方式看待:您的Javascript / jQuery正在客户端(Web浏览器)上运行,而您的PHP正在您的Web服务器上运行。

因此,要在浏览器(jQuery)和服务器(PHP)之间进行通信,您需要发出Ajax请求。

jQuery有一个你可以使用的ajax函数,最好的办法是对这个主题进行一些研究,因为Ajax是你将一直使用的东西,并且理解它是如何工作的。