2010-10-13 5 views
2

D'accord si basique, voici les morceaux de code que j'ai, fondamentalement, il est supposé mettre à jour ma table "comments" sur la colonne "like". Mon problème est situé dans le javascript en essayant de soumettre le résultat.Problème inconnu (AJAX/GET)

SPAN qui contient un lien à soumettre:

<span id="like<?=$i?>"><a href="javascript:void()" onClick="likeComment(<?=$row[commentid]?>, <?=$i?>)" />Like</a> (<?=$row[like]?>)</span> 

Fondamentalement CommentID est l'ID réel du commentaire, et $ i est le commentaire # (quand je soumets le + Comme il mettra à jour en fait le juste SPAN .

Après cela, j'ai mon AJAX qui affichera à mon fichier PHP:

<script type="text/javascript"> 
function likeComment(id, no) 
{ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("like"+no).innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","like_game.php?id="+id"&no="+no,true); 
xmlhttp.send(); 
} 
</script> 

Fondamentalement, il est censé soumettre le commentaire ID et le commentaire ID SPAN, donc alors m y Le fichier PHP retournera

<span id="like<?=$number?>"><font color="#009900">You like this</font> (<?=$row[like] + 1?>)</span> 

(Je n'ai pas inclus le PHP, mon problème n'est pas souligné ici.

Je ne sais pas quel est le problème, mais ça ne marchera pas. Quand je le fais avec un seul ID, il ne fonctionne donc à mon avis, il y a un problème avec soit

xmlhttp.open("GET","like_game.php?id="+id"&no="+no,true); 

ou

document.getElementById("like"+no).innerHTML=xmlhttp.responseText; 

Alors bascially il est censé présenter un commentaire ID 60 par exemple , il est situé dans le SPAN ID'd 5, donc quand il le soumet, il devrait être supposé revenir dans le bon ID.

Toute aide est appréciée, parce que je suis désemparé ici.

+0

Définir un point de rupture dans un débogueur javascript (Firebug par exemple) à 'document.getElementById (" like "+ no) .innerHTML = xmlhttp.responseText;' de sorte que vous pouvez savoir si elle est sur l'appel xmlhttp.open, vous verrez aussi dans firebug quelles requêtes ont été envoyées et quel était le réponse – Vinzenz

Répondre

5
xmlhttp.open("GET","like_game.php?id="+id"&no="+no,true); 

devrait ressembler à:

Je pense que vous manque un "+" dans la ligne ci-dessus :)

+0

vous ne savez pas combien d'un sauveur de vie vous êtes! ça fonctionne maintenant parfaitement. merci beaucoup Michael! aussi simple que cela puisse paraître, mais il m'a fallu beaucoup de temps pour le comprendre, avec votre aide bien sûr! –

+0

@Alex Cane: Vous êtes les bienvenus! Cela m'arrive aussi parfois :) En passant, je pense que c'est une bonne raison d'avoir une programmation en binôme au travail. –

+0

Rappelle moi de celui-ci: http://stackoverflow.com/questions/549693/js-file-not-being-executed/549696#549696 – some