2010-08-24 5 views
1

J'essaie d'écrire des informations dans ma base de données lorsque j'active une fonction javascript. J'utilise PHP et MySQL. Comment puis-je ouvrir le fichier .php, l'exécuter et retourner au fichier .js afin que la fonction continue son fonctionnement?Comment activer le fichier PHP dans la fonction JavaScript

Merci d'avance.

Répondre

0

regarder en AJAX ... pense aussi sur l'utilisation de jQuery il a un simple et facile à utiliser la fonction ajax().

2

Je pense que vous pourriez être un peu confus. Javascript s'exécute dans le navigateur, sur l'ordinateur du client. Php/MySQL s'exécute sur le serveur, répond aux requêtes HTTP et crée le contenu à afficher/exécuter par le navigateur. Pour que les deux puissent communiquer dynamiquement, vous devez examiner comment envoyer/recevoir des requêtes HTTP depuis javascript sur le client vers votre script php sur le serveur. Vous devrez également être en mesure de traiter les réponses en JavaScript. Cette pratique est connue sous le nom d'AJAX. La façon la plus simple de le faire est de mon expérience à utiliser JSON et jQuery, http://api.jquery.com/jQuery.getJSON/

0

Si vous n'êtes pas déjà en utilisant un cadre AJAX (par exemple jQuery), vous pouvez simplement utiliser une implémentation XHR vraiment léger pour faire une requête HTTP. Cette requête pourrait avoir n'importe quelle ressource PHP (effectuant les mises à jour de DB désirées) comme destination.

Le code plus petit que je connais se trouve ici: http://dengodekode.dk/artikler/ajax/xmlhttprequest_wrapper.php (danois, désolé)

<script type="text/JavaScript">(function(){if(window.XMLHttpRequest)return;var o=null,s, 
a=["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"]; 
for(var i=0,j=a.length;i<j;s=a[i],i++){try{if(o=new ActiveXObject(s))break} 
catch(e){}}window.XMLHttpRequest=o?function(){return new ActiveXObject(s)}:null;o=null})()</script> 

Et la demande:

var oHttp = new XMLHttpRequest(); 
oHttp.open("post", "http://www.domain.dk/page.php", true); 
oHttp.onreadystatechange = function(){ myCallBack(oHttp) }; 
oHttp.send("id=123&noget=andet"); 
1

Tout d'abord, il est impossible d'appeler des fonctions PHP directement à partir de JavaScript, ou vice versa. C'est parce que PHP est un script côté serveur, s'exécutant sur le serveur, et JavaScript est un script côté client, exécuté sur le navigateur.

Mais il y a une solution, cependant, en utilisant une technique appelée "AJAX" (A synchrone J avascript un e X ML), qui peut être utilisé pour envoyer une demande à un serveur de JavaScript.

Par exemple, en utilisant une page « utilisateur » que l'utilisateur voit, et une « demande » qui est appelé à partir du code JavaScript, je pourrais écrire le code suivant:

userpage.php:

<!-- JavaScript code --> 
<script type="text/javascript"> 
function sendRequestToServer() 
{ 
    // The XMLHttpRequest object is used to make AJAX requests 
    var ajax = new XMLHttpRequest(); 
    // The onreadystatechange function will be called when the request state changes 
    ajax.onreadystatechange = function() 
    { 
    // If ajax.readyState is 4, then the connection was successful 
    // If ajax.status (the HTTP return code) is 200, the request was successful 
    if(ajax.readyState == 4 && ajax.status == 200) 
    { 
     // Use ajax.responseText to get the raw response from the server 
     alert(ajax.responeText); 
    } 
    } 
    // Open the connection with the open() method 
    // (the third parameter is for "asynchronous" requests, meaning that 
    // JavaScript won't pause while the request is processing). 
    ajax.open('get', 'requestpage.php', true); 
    // Send the request using the send() method 
    ajax.send(); 
} 
</script> 
<!-- HTML code --> 
<button onclick="sendRequestToServer();">Send request!</button> 

requestpage.php (la sortie de cette page sera retourné à votre code JavaScript):

<?php 
echo "Hello World!"; 
?> 

Cet exemple, lorsque le bouton est enfoncé, envoie une requête HTTP au serveur demandant la page de requête .php, où le serveur exécuterait du code côté serveur et ferait écho au résultat. Le navigateur prend alors les données qu'il a reçues du serveur et les utilise dans le script - dans ce cas, alert().

Quelques ressources:

Vous pouvez également vérifier l'encodage JSON, qui est la méthode très courante d'envoyer des objets et des réseaux entre les clients et les serveurs (en particulier lors de l'utilisation d'AJAX):

(Désolé pour cette longue réponse, l'espoir qu'il a aidé bien)

Questions connexes