Ses derniers messages sur les forums
Et puis récupérer du javascript dans une source php, je vois pas trop comment ça peut marcher.
C là que ça doit pas aller.
Déja, et si tu regardais un peu de plus près, il ne s' agit pas de récupérer du 'javascript' comme tu le dis mais plutot tout simplement générer un script javascript grace à PHP et en récupérant des variables GET par l' url !!!
Parcontre utiliser des isset() à tout va ne peut pas aider au débugage !!!
Enlève les isset() et essaye !!!
Salut !!!
<?php
//Pour débuger, la meilieur solution est de faire plein d' echo.
//Essaye ça:
echo "<p>La variable 'type' contient ".$_GET['type']."</p>\n";
echo "<p>La variable 'id' contient ".$_GET['id']."</p>\n";
?>
Comme cela, si tes variables n' existent pas tu auras un message d' erreur !!!
Bye et bon courage...
Si j' ai bien compris, tu voudrais juste afficher le message sans recharger toute la page...
Si on continu dans ton raisonnement, tu as deux possibilité:
=>L' utilisation d' une iframe (ou bien frame)
=>L' utilisation de l' object XMLHttpRequest (javascript)
Je te conseillerais d' utiliser la dernière méthode.
Maintenant, à mon avis, tu as un gros problème de construction de ton script PHP pour arriver à ce problème.
Pourquoi, lors du traitement de ton formulaire (après validation) tu n' affiches pas ton message directement ??? A moin que tu es besoin d' envoyer des en-têtes après des affichages ( header(), session_start(), etc... )???
Vérifies bien la construction de ton site, si tu as besoin de faire des redirections soit en html (balise méta) soit en javascript c' est que tu as un souci...
Bye...
Mais oui !!! Une erreur toute bête !!!!
<?php
require_once("connexion.php");
$connexion = mysql_connect($server, $user, $motdepasse);
echo "Connexion au serveur ". $connexion ? "réussie": "ratée";
$connexion2 = mysql_select_db($base);
echo "Connexion à la base ". $connexion2 ? "réussie": "ratée";
//On teste pour savoir si notre formulaire à bien été validé. S' il n' a pas été validé, on l' affiche. Sinon on traite le formulaire...
if( ! isset($_POST['bouton']) and ! isset($_POST['idproduit']) ){
?>
<table width="760" align="center"><td>
<form name="form1" method="post">
<fieldset style="border:.5pt solid black">
<legend align="center">
<table cellSpacing=1 cellPadding=4 bgColor="#000000" border=0>
<td width="100%" height=24 vAlign="middle" bgColor="#ffba00">
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>Gestion des produits</FONT>
</td></table></legend>
<br>
<table align="center">
<td align="center" valign="top">
<table align="center">
<tr><td align="center"><b>Liste des produits</b></td></tr>
<tr>
<td align="center">
<select name='idproduit' size='10'>
<?php
// construction de la liste des produits
$rqt = "SELECT idproduit, nomproduit, categorie FROM produit ORDER BY nomproduit";
$res = mysql_query($rqt, $connexion);
echo $rqt;
echo $res;
while ($curseur = mysql_fetch_array($res))
echo '<option value="'.stripslashes($curseur[0]).'" >'.stripslashes($curseur[1]).stripslashes($curseur[2]);
?>
</select></td></tr></table></td>
<td align="center" valign="top"><br><br>
<p><input type="submit" name="bouton" value="Ajouter"></p>
<p><input type="submit" name="bouton" value="Supprimer" ></p>
<p><input type="submit" name="bouton" value="Modifier"></p>
</td></table>
<br>
</fieldset>
<br>
</form>
</td></table>
<?php
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
//Le formulaire à bien été validé, donc on le traite SANS AFFICHER d' HTML sinon la fonction header() qui envoit les en-tête va afficher un message d' erreur.
}else{
//On récupère l' id de notre produit en le protègeant des attaques par injection
$id_produit = mysql_real_escape_string($_POST['idproduit']);
switch(stripslashes($_POST['bouton']))
{
//On teste pour savoir si on ajoute...
case 'Ajouter' :
//On redirige vers la page d' ajout
header("Location form_ajout_produit.php?idproduit=" . $id_produit);
break;
//On teste pour savoir si on modifie...
case 'Modifier' :
//On redirige vers la page de modification
header("Location page_modifier.php?idproduit=$id_produit");
break;
//On teste pour savoir si on suprime
case 'Supprimer' :
//On redirige vers la page de supression
header("Location page_modifier.php?idproduit=$id_produit");
break;
}
}
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
?>
Voila, à mon avis, ça commence à ressembler à quelques choses... Logiquement, il devrait fonctionner, mais je ne l' ai pas tester. A vous de voir...
Bye...
A la limite, afin de te simplifier la tache coté php, fais ton tableau en div avec un 'float: left;' en propriété css !!!!
A mon avis, ça te simplifira la vie...
Bye...
Lorsque vous lancez votre script, il est important que vous validez votre formulaire. Sinon $_POST['idproduit'] ne sera pas déclaré !!!
Et bien sur votre formulaire doit porter le nom de 'idproduit' (enfin le select) !!!
Oui, La Globule à raison...
<?php
require_once("connexion.php");
$connexion = mysql_connect($server, $user, $motdepasse);
echo "Connexion au serveur ". $connexion ? "réussie": "ratée";
$connexion2 = mysql_select_db($base);
echo "Connexion à la base ". $connexion2 ? "réussie": "ratée";
?>
<table width="760" align="center"><td>
<form name="form1" method="post">
<fieldset style="border:.5pt solid black">
<legend align="center">
<table cellSpacing=1 cellPadding=4 bgColor="#000000" border=0>
<td width="100%" height=24 vAlign="middle" bgColor="#ffba00">
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>Gestion des produits</FONT>
</td></table></legend>
<br>
<table align="center">
<td align="center" valign="top">
<table align="center">
<tr><td align="center"><b>Liste des produits</b></td></tr>
<tr>
<td align="center">
<select name='idproduit' size='10'>
<?php
// construction de la liste des produits
$rqt = "SELECT idproduit, nomproduit, categorie FROM produit ORDER BY nomproduit";
$res = mysql_query($rqt, $connexion);
echo $rqt;
echo $res;
while ($curseur = mysql_fetch_array($res))
echo '<option value="'.stripslashes($curseur[0]).'" >'.stripslashes($curseur[1]).stripslashes($curseur[2]);
?>
</select></td></tr></table></td>
<td align="center" valign="top"><br><br>
<p><input type="submit" name="bouton" value="Ajouter"></p>
<p><input type="submit" name="bouton" value="Supprimer" ></p>
<p><input type="submit" name="bouton" value="Modifier"></p>
</td></table>
<br>
</fieldset>
<br>
</form>
</td></table>
<?php
//On récupère l' id de notre produit en le protègeant des attaques par injection
$id_produit = mysql_real_escape_string($_POST['idproduit']);
//On teste pour savoir si on ajoute...
if (isset($_POST['bouton']))
{
switch(stripslashes($_POST['bouton']))
{
case 'Ajouter' :
//On redirige vers la page d' ajout
header("Location form_ajout_produit.php?idproduit=" . $id_produit);
break;
case 'Modifier' :
if (isset($_POST['idproduit']))
//On redirige vers la page de suppression
header("Location page_modifier.php?idproduit=$id_produit"); //<--ligne 75
break;
//On teste pour savoir si on modofie
case 'Supprimer' :
if(isset($_POST['idproduit']))
//On redirige vers la page de modification
header("Location page_modifier.php?idproduit=$id_produit");
break;
}
}
?>
Cela parait mieu comme ça...
Enlevez les deux "if(isset($_POST['idproduit']))" qui sont totalement inutiles !!!
Lorsque vous voulez ajouter cela fonctionne au moin ??? Vous arrivez bien sur la page "form_ajout_produit.php" ???
Enlevez les deux "if(isset($_POST['idproduit']))" et dites moi...
La logique c' est de répéter trois fois
<?php
case 'Ajouter' :
//On redirige vers la page d' ajout
header("Location form_ajout_produit.php?idproduit=" . $id_produit);
break;
?>
En ne changeant que 'Ajouter' et en rediregeant vers les pages correspondantes...
Déja enlevez moi 'if (isset($_POST['idproduit']))'. Je ne vois pas du tout l' intéret de vérifier l' existance de la variable a cet endroit là...
Le même message d' erreur ???? Ha !
idproduit pas déclaré ?
Vous pouvez me mettre l' ensemble ??? Les 10 lignes précédentes et les 10 lignes suivantes svp ?