2013-06-19 3 views
0

Cela a probablement une réponse vraiment évidente qui me manque, mais je n'arrive pas à comprendre. Toutes les fonctions de recherche de PHP et les requêtes fonctionnent. La seule chose qui ne fonctionne pas est que les données ne sont pas affichées correctement dans la zone de texte traduit. Voici le code.La valeur javascript n'est pas définie par la fonction php

document.getElementById("translated").innerHTML = xmlhttp.open("GET","ajax-result.php?result="+num,true); 

Après la partie innerHTML, tout ce que j'ajoute (du texte en html) va dans le bon endroit, mais maintenant le code ci-dessus, il est dit undefined.

+1

... ce n'est pas comme ça que ça fonctionne. – jeremy

+0

@Nile La fonction renvoie la bonne valeur à partir de la requête PHP. Il ne l'affiche pas correctement. – deathtap

Répondre

1

xmlhttp.open ne renvoie rien - c'est pourquoi vous obtenez "indéfini". Lire http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp, en accordant une attention particulière à xmlhttp.onreadystatechange partie.

manière beaucoup plus pratique de le faire est d'utiliser jqueryajax méthode: http://api.jquery.com/jQuery.ajax/

+0

occasion 'xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == == 4 && xmlhttp.status 200) {document.getElementById ("myDiv") innerHTML = xmlhttp.responseText. } } xmlhttp.open ("GET", "ajax_info.txt", true); xmlhttp.send(); 'et cela a fonctionné parfaitement. Merci. – deathtap

0

Ce n'est pas comment fonctionne ajax. Vous devriez avoir une fonction de rappel à appeler lorsque les réponses du serveur

Quelque chose comme

if (window.XMLHttpRequest) { 
     xmlhttp=new XMLHttpRequest(); 
} 
// setup callback function 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
     if(xmlhttp.responseText == 1){ 
      document.getElementById("translated").innerHTML = xmlhttp.responseText; 
     } 
    } 
} 
xmlhttp.open("GET",'your request to sever',true); 
0

Si vous voulez vraiment vous épargner un peu mal de tête, je vous familiariser avec jQuery.

Voici un exemple complet de ce que vous tentez d'accomplir.

La mise en œuvre de l'entrée et du bouton était simplement de simuler la méthode dans laquelle une valeur est spécifiée et la fonction est appelée.

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      function runAjax(num) { 
       $.ajax({ 
        'url': 'ajax-result.php', 
        'type': 'GET', // Can also be 'POST' 
        'data': { 
         'result': num 
        }, 
        'success': function(result) { 
         $('#translated').html(result); 
         alert('success!'); 
        }, 
        'error': function(xhr, status, exception) { 
         alert('failed with status code: ' + status); 
        } 
       }); 
      } 

      $(document).ready(function() { 
       $('button').click(function() { 
        var $input = $('input'); 
        var num = $input.val(); 
        runAjax(num); 
       }); 
      }); 
     </script> 

     <input type="text" name="num" value="123" /> 
     <button type="button">Click Me!</button> 
    </body> 
</html> 
+1

Merci pour ça. J'ai eu l'intention de jeter un regard plus profond sur jQuery. – deathtap

+0

aucun prob. bonne chance! –

Questions connexes