2010-08-03 6 views
0
$(document).ready(function() { 
    function ajaxselectrss(rssurlvar) { 
    var ajaxRequest; // The variable that makes Ajax possible! 

try{ 
    // Opera 8.0+, Firefox, Safari 
    ajaxRequest = new XMLHttpRequest(); 
} catch (e){ 
    // Internet Explorer Browsers 
    try{ 
    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
    try{ 
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){ 
    // Something went wrong 
    alert("Your browser broke!"); 
    return false; 
    } 
    } 
} 
// Create a function that will receive data sent from the server 
ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 

    var ajaxDisplay = document.getElementById('news'); 
    ajaxDisplay.innerHTML = ajaxRequest.responseText; 
    } 
} 



//var rssurlvar = $(this).attr("title"); 
var queryString = "rurl=" + rssurlvar; 
var urltofile = "rssget.php"; 
ajaxRequest.open("POST", urltofile, true); 
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
ajaxRequest.setRequestHeader("Content-length", queryString.length); 
ajaxRequest.setRequestHeader("Connection", "close"); 
ajaxRequest.send(queryString); 

} 
    $(".rshownews").click(function() { 
     window.setInterval(function() {ajaxselectrss($(this).attr("title"))}, 1000); 
    }); 
}); 

La requête POST est "non définie" (Firebug).AJAX n'envoie pas de requête POST

+1

Ce '$ (document) .ready (function() {' ressemble jQuery, est-il jQuery? Si oui, pourquoi ne pas utiliser les fonctions Ajax jQuery? –

Répondre

3

Vous devez utiliser $.ajax - il standardisera l'ensemble des éléments XmlHTTPRequest dans les navigateurs.

$.ajax({ 
    type: "POST", 
    url: "rssget.php", 
    data: queryString, 
    success: function(data) { 
     $('#news').html(data); 
    } 
}); 

(Et, d'ailleurs, si vous setInterval dans votre gestionnaire de clic, vous allez commencer un nouvel appel périodique à votre fonction ajaxselectrss chaque fois que le bouton est cliqué.)

En outre, votre contexte a changé en raison à la fonction wrapper. Essayez de changer votre gestionnaire de clic comme ceci:

$(".rshownews").click(function() { 
    var _this = this; 
    window.setInterval(function() {ajaxselectrss($(_this).attr("title"))}, 1000); 
}); 
+0

Mais avec .ajax $ est le même – lam3r4370

+1

Quelle est l'erreur – sje397

+0

fonction ajaxselectrss (de rssurlvar) { $ .ajax ({type :.? "POST", url: "rssget.php", données: "rurl =" + rssurlvar, succès: function (msg) { alert ("Données enregistrées:" + msg); } }); } – lam3r4370

1

Puisque vous semblez utiliser jquery de toute façon ($ (document) .ready) vous pouvez l'utiliser est wrapper pour simplifier ajax-demandes.

http://api.jquery.com/jQuery.post