我需要创建dinamic下拉选项。第二个选择取决于第一个输入。 我想从cakephp应用程序向控制器发出ajax请求,但我仍然使用ajax代码。
我试试:
<?= $this->Form->select('country_id' ,$optionsCountry, ['id' => 'country_id'], 'onclick' => 'getcit'); ?>
<?= $this->Form->select('Cities', $optionsCities); ?>
比我想要创建的功能将在更改选择选项时调用,但我被卡住了。
<script>
function getcities(str){
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function (){
xhttp.open('POST', 'controller' => 'cities', 'action' => 'getcit',+str , true);
xhttp.send();
}
}
我不确定如何在html,onchange中调用函数? ONSELECT? 以及如何从第一个输入获取数据,将其发送到控制器操作,从控制器获取数据并将其设置为另一个选择?
谢谢你, 最好的问候,
我发现jquery.ajax可能是更简单的解决方案,但我再次陷入困境:
<script>
$(document).ready(function){
$('#country_id').change(function () {
$.ajax({
url: "",
data: "",
type: 'POST'
});
});
}
;
你能帮助我: - 如何从第一个选择中获取数据 - 转发给控制器 - 并将返回值设置为secon select
谢谢,
答案 0 :(得分:1)
您必须在首次<select>
更改后创建一个jjax调用,这将返回第二个<select>
的数据。
function getcities(id) {
$.ajax({
method: 'POST',
url: 'some.php',
data: {
country_id: id
},
success: function (data, status) {
$('.second_select').html(data); // If returns as html
}
});
return;
}