Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2011, 10h12   #1
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Par défaut Déclarer une variable dans un isset

Bonjour,
Débutant en PHP, je bute sur un truc sans doute très simple pour d'autres.
J'ai besoin de déclarer une variable au sein d'une action :
Code :
1
2
3
4
5
6
7
8
9
////////////////// Suppresion d'une ligne //////////////////////////
	 if (isset($_GET['action']) && $_GET['action']=="Supprimer"){                                                                              
		$par['LigneId']=$_GET['Ligne'];
		$req=bfp_query_depuis_xml("BTU-query.xml",'query_deleteLigne',$par);
		$result=bfp_t2d_depuis_odbc($conn, $req,true);
		$result=odbc_exec($conn, $req);
                //La requête fonctionne bien.
		$toto='test'; // c'est là que ça se corse !
	}
Pour mon exemple, je déclare une variable toute bête, mais au débuggage, j'ai le message suivant sur ma variable $toto
Citation:
Error#300: can not get property
Pourquoi ne puis-je déclarer cette variable ?
Merci
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 12h46   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Ce message d'erreur n'est pas généré par PHP
Je ne vois pas de problème à la ligne 8 du script collé
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 12h58   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Le problème doit être sur odbc_exec, vérifie ta requête manuellement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h34   #4
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Je sais que la requête fonctionne. Même si je supprime les lignes la concernant, la variable $toto n'est toujours pas déclarée.
Pour info, cette partie est appelée par du code Javascript présent dans la même page :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	echo "
	<script type='text/javascript'>
		jQuery('.bouton_supprimer').click(function() {
			var id = jQuery(this).attr('id').replace('bouton_supprimer_', '');
			if (confirm('Voulez-vous supprimer la ligne n°'+id)) {
				jQuery.ajax({
					type: 'GET',
					url: 'Saisie.php',
					data: 'Ligne='+id+'&action=Supprimer',
					success: function() {
						jQuery('#Ligne_'+id).fadeOut('slow');
					}
				});
			}
		});
	</script>";
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h41   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Je ne vois pas bien en quoi ça peut être gênant.

Ton code PHP est sémantiquement correct, tu as un débogueur sous la main ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h43   #6
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
J'utilise PHP Debugger et c'est comme ça que j'ai relevé le message d'erreur.
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 09h08   #7
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Je n'arrive à rien pour l'instant. La lecture de pas mal d'infos sur la toile ont fini par me désorienter complètement. J'avais posé le problème sous forme d'exemple, mais je vous livre la chose dans son contexte :
Je déclenche l'envoi du numéro de ligne grâce au bouton "info"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	echo "
	<script type='text/javascript'>	
		jQuery('.bouton_info').click(function() {
			var id = jQuery(this).attr('id').replace('bouton_info_', '');
				jQuery.ajax({
				type: 'GET',
				url: 'Saisie.php',
				data: 'Ligne='+id+'&action=Info',
				success: function() {
					Alert(new Array('$commentaire'); // Cette variable devrait apparaître ici
				}
			});
		});
	</script>";
Ici, ma requête reçoit le numéro de ligne et extrait la variable $commentaire qui devrait être affichée grâce au code ci-dessus
Code :
1
2
3
4
5
6
7
	if (isset($_GET['action']) && $_GET['action']=="Info"){                                                                              
		$par['LigneId']=$_GET['Ligne'];
		$req3=bfp_query_depuis_xml("BTU-query.xml",'query_infoLigne',$par);
		$result2=bfp_t2d_depuis_odbc($conn, $req3,true);
		$result2=odbc_exec($conn, $req3);
		$commentaire=$result2['Ligne']['Commentaire'];
	}
J'ai entendu parler de XMLHttpRequest mais je ne sais comment et où l'utiliser.

Pour info, j'utilise un code similaire pour supprimer une ligne et qui fonctionne parfaitement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	echo "
	<script type='text/javascript'>
		jQuery('.bouton_supprimer').click(function() {
			var id = jQuery(this).attr('id').replace('bouton_supprimer_', '');
			if (confirm('Voulez-vous supprimer la ligne n°'+id)) {
				jQuery.ajax({
					type: 'GET',
					url: 'Saisie.php',
					data: 'Ligne='+id+'&action=Supprimer',
					success: function() {
						jQuery('#Ligne_'+id).fadeOut('slow');
					}
				});
			}
		});
	</script>";
Code :
1
2
3
4
5
6
	 if (isset($_GET['action']) && $_GET['action']=="Supprimer"){                                                                              
		$par['LigneId']=$_GET['Ligne'];
		$req=bfp_query_depuis_xml("BTU-query.xml",'query_deleteLigne',$par);
		$result=bfp_t2d_depuis_odbc($conn, $req,true);
		$result=odbc_exec($conn, $req);
	}
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 09h16   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Code :
Alert(new Array('$commentaire'); // Cette variable devrait apparaître ici
1. JS en sensible à la casse, alert( ) et non pas Alert( ) ;
2. Manque la parenthèse fermante de ton alert ;
3. Il faudrait échapper $commentaire pour le préparer à un traitement JS ;
4. Mieux vaut faire ?>(script JS)<?php plus que echo "(script JS)".
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 09h36   #9
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Citation:
Envoyé par Séb. Voir le message
4. Mieux vaut faire ?>(script JS)<?php plus que echo "(script JS)".
Je ne vois pas où je dois utiliser ceci.
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 11h52   #10
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Code :
1
2
3
4
echo "
        <script type='text/javascript'>
             [...]
	</script>";
En :


Code :
1
2
3
4
5
?>
<script type='text/javascript'>
[...]
</script>
<?php
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 14h38   #11
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Merci Seb pour ton aide. J'ai corrigé. ça avance vraiment doucement.
En définitive, pourquoi je ne peux affecter la variable $commentaire avec mon résultat $infos[0]['Commentaire'] ?
Code :
1
2
3
4
5
6
	if (isset($_GET['action']) && $_GET['action']=="Info"){                                                                              
		$par['LigneId']=$_GET['Ligne'];
		$req=bfp_query_depuis_xml("BTU-query.xml",'query_infoLigne',$par);
		$infos=bfp_t2d_depuis_odbc($conn, $req,true);
		$commentaire=$infos[0]['Commentaire'];
	}
Avec PHP Debugger je vois que ma requête est bien lancée mais impossible de déclarer $commentaire. J'ai l'erreur : "Error#300: can not get property"
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 18h23   #12
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Que vaut $infos[0]['Commentaire'] ?
Vérifie avec var_dump( ).
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 08h23   #13
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Citation:
Envoyé par Séb. Voir le message
Que vaut $infos[0]['Commentaire'] ?
ça me renvoie une chaîne avec la valeur stockée sur le serveur SQL (le fameux commentaire). Donc de ce côté là ça marche bien.
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 08h50   #14
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par stigma Voir le message
ça me renvoie une chaîne avec la valeur stockée sur le serveur SQL (le fameux commentaire). Donc de ce côté là ça marche bien.
Et si tu fais un echo $commentaire la valeur est bonne ?
Si tu mets ton affectation en commentaire plus de notif de phpDebugger ?

Si oui et que PHP ne te retourne pas d'erreur en mode de retour d'erreur max (voir error_reporting( ) : http://fr.php.net/manual/fr/function...-reporting.php ) je serais partant pour ignorer la notif (qui provient peut-être du fait que phpDebugger n'exécute pas bfp_t2d_depuis_odbc( )).
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 09h02   #15
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
un echo ne donne rien. Mais PHP Debugger exécute bien bfp_t2d_depuis_odbc puisqu'il me retourne bien le commentaire. C'est l'affectation dans une variable qui coince.
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h14   #16
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Hum c'est difficile à croire

Que donne ceci :

Code :
1
2
3
4
5
$infos=bfp_t2d_depuis_odbc($conn, $req,true);
echo '<h2>$infos[0]["Commentaire"] = ', $infos[0]['Commentaire'], '</h2>' ;
$commentaire=$infos[0]['Commentaire'];
echo '<h2>$commentaire = ', $commentaire, '</h2>' ;
echo '<h2>var_dump = ' ; var_dump($commentaire) ; echo '</h2>' ;
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h50   #17
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
En localhost, rien ne s'affiche, pas de message d'erreur.
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 08h30   #18
Membre Expert
 
Avatar de stigma
 
Homme Alain
Développeur informatique
Inscription : octobre 2003
Messages : 846
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 61
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2003
Messages : 846
Points : 1 053
Points : 1 053
Envoyer un message via MSN à stigma
Un contact extérieur au site m'a envoyé la solution. La voici :


Je te conseille de créer un nouveau fichier php qui s'occupe simplement de récupérer le commentaire dans la BD et de l'afficher.

Exemple :
fichier : traitement_ajax.php
Code :
1
2
3
4
5
6
if (isset($_GET['action']) && $_GET['action']=="Info"){                                                                              
	$par['LigneId']=$_GET['Ligne'];
	$req=bfp_query_depuis_xml("BTU-query.xml",'query_infoLigne',$par);
	$infos=bfp_t2d_depuis_odbc($conn, $req,true);
	echo $infos[0]['Commentaire'];    //On affiche le commentaire qui sera stocké dans data
}
Et ensuite tu modifies un peu ta fonction jQuery.
Maintenant la fonction appelle le nouveau fichier 'traitement_ajax.php' et récupére dans la variable data les données affichées dans le fichier 'traitement_ajax.php'
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
	<!-- Afficher infos chargeurs-->		
	jQuery('.bouton_info').click(function() {
		var id = jQuery(this).attr('id').replace('bouton_info_', '');
		jQuery.ajax({
		type: 'GET',
		url: 'traitement_ajax.php',     //La fonction appelle un nouveau fichier php
		data: 'Ligne='+id+'&action=Info',
		success: function(data) {        //En cas de réussite, data à pour valeur tout le code html affiché dans 'traitement_ajax.php 
			<!--alert(new Array($commentaire));-->
			alert(data);                   // On affiche data
		}
		});
	});
Merci à Jean-Baptiste
__________________
Je ne suis pas une adresse IP, je suis un homme libre !
stigma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h42.


 
 
 
 
Partenaires

Hébergement Web