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$.posttype: 'POST'

于 2012-06-18T23:19:47.507 に答える