Code Php sur le OnChange

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Code Php sur le OnChange

Re: Code Php sur le OnChange

par ZoiDrums » 08 mars 2011, 14:46

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...

Re: Code Php sur le OnChange

par stealth35 » 07 mars 2011, 16:04

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

par ZoiDrums » 07 mars 2011, 15:58

Certes, même si le mien fonctionne également... 8-|

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

par stealth35 » 07 mars 2011, 15:42

c'est
<script type="text/javascript">

Re: Code Php sur le OnChange

par ZoiDrums » 07 mars 2011, 15:22

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

par xTG » 07 mars 2011, 13:58

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

par ZoiDrums » 07 mars 2011, 12:27

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 ? :oops:

Merci d'avance

Re: Code Php sur le OnChange

par Berzemus » 07 mars 2011, 12:18

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

par ZoiDrums » 07 mars 2011, 12:06

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 :wink:

Re: Code Php sur le OnChange

par stealth35 » 07 mars 2011, 11:40

Pas directement mais en appelant le PHP via AJAX c'est faisable.

Code Php sur le OnChange

par ZoiDrums » 07 mars 2011, 11:22

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