Bzh

  • Nombre de sujets
    62
  • Nombre de messages
    1 503
  • Nombre de commentaires
    24
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Bzh
le 16/08/2005 à 23:51
récupèrer des variables transmises par javascript
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 !!!
Bzh
le 15/08/2005 à 11:43
récupèrer des variables transmises par javascript
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...
Bzh
le 14/08/2005 à 23:02
include et rechargement
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...
Bzh
le 14/08/2005 à 12:04
recupérer les données
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...
Bzh
le 12/08/2005 à 23:13
Tableaux qui rendent fou
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...
Bzh
le 12/08/2005 à 16:55
recupérer les données
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) !!!
Bzh
le 12/08/2005 à 16:47
recupérer les données
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... smiley
Bzh
le 12/08/2005 à 16:20
recupérer les données
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...
Bzh
le 12/08/2005 à 16:13
recupérer les données
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à...
Bzh
le 12/08/2005 à 16:11
recupérer les données
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 ?
LoadingChargement en cours