Page 1 sur 1
Code Php sur le OnChange
Posté : 07 mars 2011, 11:22
par ZoiDrums
Bonjour,
je voudrais faire quelque chose dont je ne suis pas sûr de la possibilité.
Pour enregistrer uniquement les données nécessaires d'un gros tableau, j'aurais voulu alimenter un tableau en variable de session (donc en Php, genre $_SESSION["MODIFS"]) en mettant le nom de l'élément modifié à chaque fois. Ceci me permettrait, à l'enregistrement de données, de ne sauvegarder que les données nécessaires.
Mais comment fait-on pour positionner du code Php dans l'évènement OnChange (si c'est possible) ?...
Merci d'avance
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 11:40
par stealth35
Pas directement mais en appelant le PHP via AJAX c'est faisable.
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 12:06
par ZoiDrums
Oula... Je ne connais pas trop le AJAX, on en a vaguement parlé à l'époque où j'étais en cours mais j'ai vite oublier...
Je vais me renseigner sur la chose.
Si quelqu'un a une réponse plus explicite, ça m'intéresse aussi

Re: Code Php sur le OnChange
Posté : 07 mars 2011, 12:18
par Berzemus
Pour paraphraser Stealth, tu ne peux pas mettre du Php (langage serveur) dans un Onchange (javascript, langage client).
Tu peux le faire en appelant ton script Php, sur le serveur, via Javascript.
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 12:27
par ZoiDrums
On peut donc appeler du Php dans du code javascript...
mais via AJAX, si j'ai bien compris...
Auriez-vous juste un exemple pour que je puisse voir la syntaxe ?
Merci d'avance
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 13:58
par xTG
J'ai trouvé ceci :
http://www.squalenet.net/fr/pc/articles ... s-pas.php5
Je ne l'ai lu qu'en diagonale mais il a l'air assez complet et bien expliqué.
Il est spécifique à un retour XML, mais si tu comprends le fonctionnement avec ceci tu pourras l'adapter à autre chose (objet JSON par exemple).
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 15:22
par ZoiDrums
Donc si je comprend bien (pas sûr) je dois pouvoir faire ça :
déclaration de fonctions javascript en début de page :
<SCRIPT language="JavaScript">
function createRequestObject() {
var http;
if(window.XMLHttpRequest) { // Mozilla, Safari, ...
http = new XMLHttpRequest();
} else if(window.ActiveXObject) { // Internet Explorer
http = new ActiveXObject("Microsoft.XMLHTTP");
}
return http;
}
function addChangeData(pElem) {
var ajaxObj = createRequestObject();
ajaxObj.open("POST", "./sauvSession.php", true);
ajaxObj.send("newElem = "+pElem);
}
</SCRIPT>
Puis sur chacun de mes éléments pour lesquels je veux savoir qu'il y a eu une modif je met ceci onChange=addChangeData(
nom de l'élément)
Et je crée un page sauvSession.php qui contiendrait :
<?php
$nomElem = $_POST["newElem"];
$_SESSION["MODIF"][] = $nomElem;
?>
La variable $_SESSION["MODIF"] serait initialisé au chargement de la page...
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 15:42
par stealth35
c'est
<script type="text/javascript">
Re: Code Php sur le OnChange
Posté : 07 mars 2011, 15:58
par ZoiDrums
Certes, même si le mien fonctionne également...
Mais ma vraie question porte plutôt sur l'utilisation d'AJAX que je maîtrise pas du tout...

Re: Code Php sur le OnChange
Posté : 07 mars 2011, 16:04
par stealth35
y'a plein de tutoriels et d'explication sur l'AJAX, il suffis juste de prendre un peu de temps pour les lire
Re: Code Php sur le OnChange
Posté : 08 mars 2011, 14:46
par ZoiDrums
Sinon il est peut-être aussi possible de créer un FORM vide dans ma page et d'en modifier le INNER HTML lors de l'évenement onChange pour y ajouter des input hidden.
Lors du clic sur le bouton d'enregistrement, il faudrait alors valider le FORM contenant les variables et de ce fait je pourrais enregistrer les cases modifiées...