在php中的Ajax请求

时间:2016-09-06 12:17:36

标签: php ajax

我需要创建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

谢谢,

1 个答案:

答案 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;
}