好的,所以我在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函数,这是父母的新值。
提前致谢。
答案 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是你将一直使用的东西,并且理解它是如何工作的。