1

这是我原来的功能。它工作得很好,我只想压缩一点:

 <script type='text/javascript'>
function searchmusic(){
var ajaxRequest;  

try{
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    try{
        ajaxRequest = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
        } catch (e){
            alert('Your browser broke!');
            return false;
        }
    }
}
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('searchresults');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;

    }
}
var search = document.getElementById('search').value;
var params = 'search=' + search;
ajaxRequest.open('POST', 'getsearch.php', true);  
ajaxRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajaxRequest.send(params);

}
</script>

我正在尝试稍微压缩这个函数,所以我尝试使用 jQuery 复制它:

 <script>
 function searchmusic(){
 var search = document.getElementById('search').value;
 $.ajax({
type: 'POST',
url: getsearch.php,
async: true,
data: 'search=' + search,
success: function(data) {
$('#searchresults').load(data);
 }
 });
 }
</script>

但是,我无法使此功能正常工作。有人可以告诉我我在哪里犯了错误,为什么这个功能不起作用,或者可能是这个新功能不能像我原来的那样起作用。我不知道,但任何帮助将不胜感激,谢谢!

4

3 回答 3

1

改变:

url: getsearch.php, // The property php of the getsearch variable

到:

url: 'getsearch.php', // A string with the URL.

并改变:

$('#searchresults').load(data);

到:

$('#searchresults').html(data);
于 2012-06-18T23:16:55.060 回答
1
url: getsearch.php,

应该

url: 'getsearch.php',

success: function(data) {
    $('#searchresults').load(data);
}

应该

success: function(data) {
    $('#searchresults').html(data);
}

var search = document.getElementById('search').value;可以,但因为你正在使用jQuery,所以你可以使用var search = $('#search').val(),默认情况下async is true你可以省略它,也$.ajax可以$.post这样你也可以删除type: 'POST'

于 2012-06-18T23:19:47.507 回答
0

Waaaay更紧凑:

function searchmusic(){
 $("#searchresult").load("getsearch.php", {search: $("#search").val()});
}

这就是您需要的所有功能:)

您可以.load()在 AJAX 结果进入元素时使用。作为对象传递的参数确保我们执行 POST 而不是 GET 调用。所以你的功能可以减少很多。

于 2012-06-19T00:00:16.020 回答