使用JS和PHP重新加载自动完成页面的一部分?

时间:2016-11-24 02:58:43

标签: php jquery mysql typeahead.js

好吧,卡在这里...... 我有一个twitter typeahead autocomplete完整框。

        <div id="sites">
            <span></h4>Site Review</h4><input class="typeahead form-control" type="text" placeholder="Spot Check for..."></span>
        </div>

在选择自动完成时,而不是重新加载页面或iframe,我想刷新一个div,其中包含mysql服务器中存储的每个“site”所特有的列表元素。这些将由get_site_attributes.php

获取
$('.typeahead')
    .typeahead(/* pass in your datasets and initialize the typeahead */)
    .on('typeahead:selected', onAutocompleted)
    .on('typeahead:autocompleted', onSelected);


function onAutocompleted($e, datum) {
...
}

function onSelected($e, datum) {
...
}

现在如何在不使用iframe的情况下使用get_site_attributes.php的内容重新加载该div?

-thanks提前

1 个答案:

答案 0 :(得分:2)

正如评论中所说,你必须使用ajax。

在需要刷新DOM内容的地方调用方法ajaxCall

假设你有这个:

<h1 class='site_title'></h1>

然后在你的js:

var ajaxCall = function(){
    $.ajax({
    url : 'get_site_attributes.php', #or relative path
    type : 'GET',
    dataType:'', #whatever get_site_attributes.php is returning: html/json/...
    success : function(data) {              
        updateDatas(data);
    },
    error : function(request, error) {
        console.log(request, error);
    }
 });
}

var updateDatas(data) = function(){
    # replace whatever you want in the DOM with your datas
    # for example: 
    # $('.site_title').empty();
    # $('.site_title').append(data.site_title);
}