Transmission de données JS -> PHP = FAIL
J'ai un problème lors d'une transmission de données d'un code js à un script php
Mon JS :
*$.ajax({
url : 'save_file.php',
type : 'GET',
data : 'test=ffdgvf';
});*
Mon PHP :
echo $_GET['test'];
L'erreur renvoyée : Undefined index: test
Si quelqu'un à une idée de la source du problème, car j'suis à cours, merci.
@Thepeasant: manifestement tu utilise jquery http://api.jquery.com/jquery.ajax/
et fais juste un
echo $_get;
comme ca tu pourra voir tout ce qu'il contient, si la structure du $_get ne correspond pas à ce que tu attends tu trouvera quand même tes infos dedans
@Thepeasant: bah du coup au moins tu sais que ton javascript est cancereux.
essaye de remplacer
data : 'test=ffdgvf';
par
data : "test='ffdgvf'"
Essaye "method" au lieu de "type".
Aussi, data est mal foutu : ce doit être du JSON.
data: {"test": "foobar"}
@Divi:
$.ajax({
url : 'save_file.php',
method : 'GET',
data: {"test": "foobar"},
});
Et mon php :
<?php
echo $_GET['test'];
?>
Cad du texte ?
J'ai pas mis tout mon code au niveau du JS, mais c'est parce que je suis sur qu'il n'y a rien qui n'interfère et qui ne fonctionne pas, et le fichier php par contre est comme ça : une ligne
@Thepeasant: reprend ta requête que tu as mis dans ton post initial, et fait un screen de ta console partit network => XHR => le nom du fichier que t'appel
@Thepeasanten screen : l'onglet header entier, et response / preview l'un ou l'autre
@Thepeasant: alors c'est ok, tu as tout là dans ta reponse tu a bien ta string, donc coté php ton $_get['test'] te retourne bien ta string que tu lui passe normalement, y'as pas de soucis, la tu as le resultat attendu :)
@Thepeasant: si dans preview et response tu retrouves bien ta string, tu n'as aucune erreur, tu la vois ou ton undefined ?
@Dreanad44447847: Quand je lance la page .php, depuis le js la variable s'envoie bien, mais depuis le php tout est vide/inexistant.
J'ai envoyé les fichiers à sainsi plus bas si tu veux checker, j'suis sur que j'ai fais une erreur de base en dehors du code que je vous ai montré
@Thepeasant: Je pense qu'en fait tu n'as pas saisis le principe de l'Ajax simplement,
l'ajax te sert uniquement à recup des données via les data que tu lui envois
ta requete ajax appel ton fichier php, ton fichier php te retourne ce que tu demandes sous le format de ton choix ( en général en ajax on utilise le json, ou directement de l'html )
mais si tu appel ta page php ( celle que tu requete en ajax ) directement depuis ton navigateur, c'est l'equivalent d'un GET donc si t uveux que ca marche, dans ton url, tu rajoute tes parametres
mon-url.fr?test=sdfsdf
je sais pas si c'est très clair
en fait ca dépend de comment tu a fait ton script, si j'ai le temps après le boulot je regarde ton archive
@Dreanad44447847: Oui oui je comprends très bien, à la base c'est du json que je veux envoyer en fait, mais vu que ça marchait pas j'ai simplifier la requete à une simple chaine pour regarder d'ou venait le prob, mais je bute
Merci en tout cas, ce serait cool
@Thepeasant: Bon j'ai testé rapido, ton script fonctionne, qu'est-ce qui ne vas pas pour to i?
@Dreanad44447847: rends toi sur la page ../js/save_file.php
Cette page est censée écrire la variable reçu sur un fichier puis renvoyer à la page précédente
Ne me demande pas pourquoi j'ai pas tout fait en .php, je sais que mon code est pas du tout optimal mais bon là j'suis dedans y'a plus que cette erreur et j'serais tranquille
@Thepeasant: en fait tu essais d'accèder a ta page que tu requete en ajax via ton navigateur c'est ca ?
pour quel raison ?
sinon, si tu veux que ca marche, il faut lui donné le param get, ou simplement tester si il y a bien le get
localhost/lab/choual/js/save_file.php?test=tastring
ca, ca marchera
et sinon dans ton code
$mavar = $_GET['test] ? $_GET['test] : false;
et voila
Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.
En accédant à ce site, tu acceptes nos conditions d'utilisation.