Isset d'une var contenu dans une autre var est définie [PHP]
Résolu/Fermé
Nesil
-
Modifié le 20 juin 2022 à 20:46
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 - 21 juin 2022 à 19:32
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 - 21 juin 2022 à 19:32
A voir également:
- Isset d'une var contenu dans une autre var est définie [PHP]
- Word a trouvé du contenu illisible - Guide
- Easy php - Télécharger - Divers Web & Internet
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock' (2) ✓ - Forum Linux / Unix
- Contenu sme - Forum YouTube
- [<B>contenu masqué</b>] ✓ - Forum Téléphones & tablettes Android
4 réponses
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
Ambassadeur
1 556
20 juin 2022 à 18:21
20 juin 2022 à 18:21
bonjour,
si tu veux comprendre ce qui se passe, le point de départ, c'est, en php, d'afficher et d'examiner le contenu de $_POST.
si tu veux comprendre ce qui se passe, le point de départ, c'est, en php, d'afficher et d'examiner le contenu de $_POST.
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
20 juin 2022 à 21:01
20 juin 2022 à 21:01
Bonjour,
Je ne vois pas sur quoi tu te bases pour dire que tu ne rentres pas dans le IF ... vu que tu as les mêmes variables AVANT et DANS le if ...
Je ne vois pas non plus l'intéret de ton IF/ELSE dans ton JS ...
Surtout que tu boucles sur tes fichiers.. et donc.. écrase ta variable à chaque itération..
A noter également que pour uploader un fichier en ajax, il faut passer par un formData.
Les fichiers seront , comme avec un formulaire "normale", contenus dans la variable $_FILES
Côté code PHP .. tu peux remplacer ton code actuel par
Reste à regarder dans la console ce que ça te retourne...
Je ne vois pas sur quoi tu te bases pour dire que tu ne rentres pas dans le IF ... vu que tu as les mêmes variables AVANT et DANS le if ...
Je ne vois pas non plus l'intéret de ton IF/ELSE dans ton JS ...
Surtout que tu boucles sur tes fichiers.. et donc.. écrase ta variable à chaque itération..
A noter également que pour uploader un fichier en ajax, il faut passer par un formData.
var formData = new FormData(); formData.append('id_prio', 'id_prio'); formData.append('texte ', 'texte '); formData.append('position ', 'position '); formData.append('id_onglet ', 'id_onglet '); formData.append('dateid ', 'dateid '); // Attach files jQuery.each(jQuery('#photoAideDetail')[0].files, function (i, file) { formData.append('file', file); }
Les fichiers seront , comme avec un formulaire "normale", contenus dans la variable $_FILES
Côté code PHP .. tu peux remplacer ton code actuel par
$response = []; // initialisation de la variable reponse $response['DEBUG']['POST'] = $_POST; $response['DEBUG']['FILE'] = $_FILES; if (isset($_POST['id_prio']) && isset($_POST['texte'])) { //... suite du code pour sauvegarder avec les requetes sql...
Reste à regarder dans la console ce que ça te retourne...
En console au niveau du « console.log(106, response); » de mon .js, cela met toutes les lignes de codes et de css voila un extrait : « <br/>\n<font size =1><table classe ….. » et cela pendant une vingtaines de ligne.
Le console.log(107,formData) de mon .js me donne en console : FormData {}
Et puis apres j’ai un Uncaught syntaxError : Unexpected token < in JSON …
Le console.log(107,formData) de mon .js me donne en console : FormData {}
Et puis apres j’ai un Uncaught syntaxError : Unexpected token < in JSON …
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Nesil
21 juin 2022 à 13:06
21 juin 2022 à 13:06
Il faudrait regarder dans la console, de préférence avec Firefox, le retour de ton appel Ajax.
Et nous en faire une capture écran avec le message complet qui s'affiche dans l'onglet réponse.
Je suppose que ça te donne une erreur au niveau de ton code PHP
Et nous en faire une capture écran avec le message complet qui s'affiche dans l'onglet réponse.
Je suppose que ça te donne une erreur au niveau de ton code PHP
Rebonjour et merci pour vos réponses.
@jordane45 : pardon en voulant nettoyer mon code pour le coller ici j’ai mal recopié les reponses dans la boucle if. Ce qui nous donne ça en terme de code :
$response[0] = "erreur1";
$response[1] = "erreur2";
if (isset($_POST['id_prio']) && isset($_POST['texte'])) {
$response[0] = "erreur3";
$response[1] = "erreur4";
//... suite du code pour sauvegarder avec les requetes sql...
Avec le même résultat que dans ma question.
ma boucle if/else me permet d’ajouter et d’enregistrer en bdd la pièce jointe dans les variables uniquement si l’utilisateur en sélectionne une sur l’application. Sinon cette variable est null mais quand même contenu dans la variable dataObj.
De plus j’ai déjà tenté de faire un formData puis un stringify que j’ai appelé dans l’ajax. Mais en php pareille je n’arrivais pas à récupérer la photo
@jordane45 : pardon en voulant nettoyer mon code pour le coller ici j’ai mal recopié les reponses dans la boucle if. Ce qui nous donne ça en terme de code :
$response[0] = "erreur1";
$response[1] = "erreur2";
if (isset($_POST['id_prio']) && isset($_POST['texte'])) {
$response[0] = "erreur3";
$response[1] = "erreur4";
//... suite du code pour sauvegarder avec les requetes sql...
Avec le même résultat que dans ma question.
ma boucle if/else me permet d’ajouter et d’enregistrer en bdd la pièce jointe dans les variables uniquement si l’utilisateur en sélectionne une sur l’application. Sinon cette variable est null mais quand même contenu dans la variable dataObj.
De plus j’ai déjà tenté de faire un formData puis un stringify que j’ai appelé dans l’ajax. Mais en php pareille je n’arrivais pas à récupérer la photo
Bonjour.
Merci beaucoup, vos messages m'ont aidé à modifier mon code pour que ma photo s'enregistre en bdd comme je le voulais.
Voici ce que j'ai fait dans mon .js :
var l = new FormData();
l.append('id_prio',id_prio);
l.append('texte',texte);
l.append('position',position);
l.append('id_onglet',id_onglet);
l.append('dateid',dateid);
console.log(51,l);
if (document.getElementById('photoAideDetail').files.length > 0) {
jQuery.each(jQuery('#photoAideDetail')[0].files, function (i, file) {
l.append('photoAideDetail', file);
});
console.log(57,l);
}
$.ajax({
cache:false,
url: "data/sauvegarderPrioOngletFenetre",
type: "POST",
async: false,
data: l,
processData: false,
contentType: false,
success:function(response, status){
console.log(107, l);
// response = JSON.parse(response);
if(response[0] == "erreur1" && response[1] == "erreur2"){
erreur('Une erreur est survenu lors de la sauvegarde!');
}else{
if(response[0] == "erreur1"){
erreur(response[1]);
}else{
reussite(response[0]);
}
}
},
error: function(response, status){
}
});
et voila mon .php :
$response[0] = "erreur1";
$response[1] = "erreur2";
if (isset($_POST['id_prio']) && isset($_POST['texte'])) {
$response[0] = "erreur3";
$response[1] = "erreur4";
$id_prio = $_POST['id_prio'];
$id_onglet = $_POST['id_onglet'];
$texte = $_POST['texte'];
$position = $_POST['position'];
$dateid = $_POST['dateid'];
Mon problème était que c'etait la variable $_FILE qui contenait ma photo hors je n'appelais pas la bonne variable au moment de ma requete SQL.
J'ai un autre problème mais cela n'a rien à voir avec ce topic. Je vais donc en créer un autre. Merci beaucoup.
Merci beaucoup, vos messages m'ont aidé à modifier mon code pour que ma photo s'enregistre en bdd comme je le voulais.
Voici ce que j'ai fait dans mon .js :
var l = new FormData();
l.append('id_prio',id_prio);
l.append('texte',texte);
l.append('position',position);
l.append('id_onglet',id_onglet);
l.append('dateid',dateid);
console.log(51,l);
if (document.getElementById('photoAideDetail').files.length > 0) {
jQuery.each(jQuery('#photoAideDetail')[0].files, function (i, file) {
l.append('photoAideDetail', file);
});
console.log(57,l);
}
$.ajax({
cache:false,
url: "data/sauvegarderPrioOngletFenetre",
type: "POST",
async: false,
data: l,
processData: false,
contentType: false,
success:function(response, status){
console.log(107, l);
// response = JSON.parse(response);
if(response[0] == "erreur1" && response[1] == "erreur2"){
erreur('Une erreur est survenu lors de la sauvegarde!');
}else{
if(response[0] == "erreur1"){
erreur(response[1]);
}else{
reussite(response[0]);
}
}
},
error: function(response, status){
}
});
et voila mon .php :
$response[0] = "erreur1";
$response[1] = "erreur2";
if (isset($_POST['id_prio']) && isset($_POST['texte'])) {
$response[0] = "erreur3";
$response[1] = "erreur4";
$id_prio = $_POST['id_prio'];
$id_onglet = $_POST['id_onglet'];
$texte = $_POST['texte'];
$position = $_POST['position'];
$dateid = $_POST['dateid'];
Mon problème était que c'etait la variable $_FILE qui contenait ma photo hors je n'appelais pas la bonne variable au moment de ma requete SQL.
J'ai un autre problème mais cela n'a rien à voir avec ce topic. Je vais donc en créer un autre. Merci beaucoup.
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
21 juin 2022 à 19:32
21 juin 2022 à 19:32
Dans tes prochains messages, merci d'utiliser les balises de code pour poster du code sur le forum
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources