Récupération d'une variable javascript à partir d'un dojo bouton dans php

cs_antoineadb Messages postés 4 Date d'inscription dimanche 14 février 2010 Statut Membre Dernière intervention 15 avril 2013 - 16 nov. 2012 à 09:17
cs_antoineadb Messages postés 4 Date d'inscription dimanche 14 février 2010 Statut Membre Dernière intervention 15 avril 2013 - 22 nov. 2012 à 10:56
Bonjour, je recherche depuis un peu trop longtemps à faire passer une variable javascript dans du php, j'ai une FilteringSelect ou je sélectionne une donnée et en fonction de la valeur sélectionné je veux faire un update dans une base de donnée POSTRESQL

voila mon code

<script>dojoConfig =  {async: true, parseOnLoad: true}</script><script src='js/dojo/dojo.js'></script><script>require([
    "dojo/ready", "dojo/store/Memory", "dijit/form/FilteringSelect"
], function(ready, Memory, FilteringSelect){
    var stateStore = new Memory({
<?php include 'tmp/selectlibelletypeutilisateurs2.json';?> // je récupère ici mon json
   });
 
    ready(function(){
        var filteringSelect = new FilteringSelect({
            id: "role",
            name: "admin",
            value: "1",            
            store: stateStore,
            searchAttr: "name"
        }, "role");
    });
});</script>
</head>

     
 
  
    <script>
        require(["dijit/form/Button", "dojo/domReady!"], function(Button) {
            var button  = new Button({
                label: "Get value!",               
                onClick: function(){
var test =dijit.byId('role').get('value');		
             // ici je dois passer ma valeur en php;
             // et faire mon update en base de donnée          
 
                }
            }, "btn");
            button.startup();		           
        });
 
    </script>


J'ai essayer de faire test ="<?php echo $test?>" mais apparemment Dojo transforme le html et refuse les balises de php
Je vous remercie par avance

3 réponses

sylvain64520 Messages postés 130 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 7 juin 2013
16 nov. 2012 à 11:04
Je ne pense que ce soit dojoConfig qui interpréte mal le php puisque c'est du javascript (exécuté sur le poste de l'utilisateur) et php et exécuté sur le serveur et renvoit une page HTML/JS.

Ecrit comme ceci : test ="<?php echo $test; ?>" avec ';' et ' '. Puis regarde le code source de la page lorsqu'elle est exécutée. Tu verras bien ce que tu as dans test (JS).
0
cs_antoineadb Messages postés 4 Date d'inscription dimanche 14 février 2010 Statut Membre Dernière intervention 15 avril 2013
21 nov. 2012 à 12:04
Bonjour, merci de ton aide mais je suis toujours coincé, quand je fait test ="<?php echo $test; ?>" coté serveur j'ai </ br>, il n’interprète pas du tout le php avec ; ou rien j'ai le même résultat
Est ce que quelqu'un peut m'aider?
0
cs_antoineadb Messages postés 4 Date d'inscription dimanche 14 février 2010 Statut Membre Dernière intervention 15 avril 2013
22 nov. 2012 à 10:56
J'ai soldé le problème en passant par ajax

voila le résultats
fichier 1








dojoConfig = {async: true}


require(["dijit/form/Select",
"dojo/data/ObjectStore",
"dojo/store/Memory"
], function(Select, ObjectStore, Memory){

var store = new Memory({


});

var os = new ObjectStore({ objectStore: store });

var s = new Select({
store: os
}, "target");
s.startup();

s.on("change", function(){
var valeur =dijit.byId('target').get('value')
document.admin.cibleCentrale.value = valeur;
})
})









message du serveur


Modifier



require(["dojo/dom", "dojo/on", "dojo/request", "dojo/dom-form"],
function(dom, on, request, domForm){

var form = dom.byId('admin');

// Attach the onsubmit event handler of the form
on(form, "submit", function(evt){

// prevent the page from navigating after submit
evt.stopPropagation();
evt.preventDefault();

// Post the data to the server
request.post("test1.php", {
// Send the username and password
data: domForm.toObject("admin"),
}).then(function(response){
dom.byId('svrMessage').innerHTML = response;
});
});
}
);








enfin le traitement dans un autre fichier




0