Forum CMS Made Simple FR

Version complète : Requete javascript et UDT
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.11
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,

je développe une application smartphone via Titanium qui est "synchro" avec du contenu d'un blog en CMSMS. Pour la récupération de données, tout se passe bien.

J'ai néanmoins un problème que je ne parviens pas à expliquer avec l'envoi de données depuis mon appli vers le blog.


En gros, j'ai un gabarit vide avec ma balise {content}, j'appelle mon UDT dans le contenu. Dans la balise, pour le moment, je fais juste un return var_dump($_POST);

Quand je test cela, cela ne retourne rien (<null>) dans mon appli. (y a du url rewriting)


Par contre, si je crée un fichier test.php à la racine de mon serveur, avec le même code. J'ai bien le return des $_POST qui s'affiche.

Quelqu'un a une idée ? Je ne pense pas que cela vienne du JS car avec la page php, cela fonctionne directement.

Bien à vous,
Désolé, je remarque que je me suis trompé de section. Si un admin pouvait déplacer le sujet.

Merci.
Déplacé dans Modules Balises
Personne ?

Je ne comprends pas. J'ai ajouté un showtemplate=false à l'URL, je n'ai plus aucun retour.
Dur de t'aider :/
Assigne ta variable à smarty : http://docs.cmsmadesimple.org/tags/user-...le-to-page
Et pourquoi as-tu écrit "requête javascript" dans le titre ?
Car cela vient de mon application faite avec Titanium, en Javascript.

Pour être concret, voici le code que j'envoie depuis l'appli :

Code :
[== JavaScript ==]
var votePost = {
                    id: args.id,
                    votes: 1,
                    votants:json.id
                };
                
                var xhr = Ti.Network.createHTTPClient({
                    onload: function() {
                        Ti.API.info(this.responseText);
                    },
                    onerror: function(e){
                     Ti.API.error('Bad Sever =>'+e.error);
                    }
                });
                
                xhr.open('POST','XXX/setNewVote.html');
                xhr.send({"id":votePost.id,"votes":votePost.votes,"votant":votePost.votants});

setNewVote.html est une page, avec un gabarit qui contient juste {content} et dans laquelle j'appelle directement ma balise utilisateur qui elle (pour le moment) fait un echo de $_POST.

La réponse est vide.


J'ai créé une page setNewVote.php à la racine du serveur, et lorsque je remplace le .html par .php,

la réponse est mon tableau $_POST.
Ce ne serait pas un problème de cache ? Essaye en plaçant ta balise d'appel udt dans :{nocache}{monUdt}{/nocache}
Malheureusement, ça ne change rien Sad

Même en faisant un simple echo "ok"; c'est vide. C'est vraiment bizarre.
xhr.open('POST','XXX/setNewVote.html');
XXX est-il correct ?
Tu peux aussi mettre en asynchrone : xhr.open('POST','setNewVote.html',true);
Oui, c'est la bonne adresse.

Je ne comprends vraiment pas, l'asynchrone ne règle pas le problème non plus. Quand j'ajoute showtemplate=false, la réponse est vide au lieu de <null>

L'autre chose bizarre, c'est que même le echo "ok"; ne passe pas. J'ai même mis un texte en dehors de l'UDT pour voir si je voyais ca au moins, rien.

Je crois que je vais me rabattre sur le script PHP à la racine avec un include de config.php
Désolé, je ne vois rien qui puisse t'aider :/ .
Merci de t'être penché la dessus, mes timings sont serrés mais si je trouve une solution, je viendrai la partager.