Récupérer une variable dans une autre

Résolu/Fermé
tintin8895 Messages postés 9 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 février 2008 - 15 janv. 2008 à 08:51
tintin8895 Messages postés 9 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 février 2008 - 17 janv. 2008 à 10:23
Bonjour,

Je cherche, dans le le script A2.php, à réintégrer le contenu de la variable $francais saisi dans A1.html au niveau du input afin d'éviter d'avoir à le saisir de nouveau. Je pense que cela doit pouvoir se faire avec VALUE mais ne trouve pas la syntaxe qui le ferait fonctionner. Merci d'avance pour vos idées.

-------------------------------- A1.html (extrait)------------------------------------
<form name="insertion" action="A2.php" method="post">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>Français</td>
<td><input type="text" name="francais"></td>
</tr>

<tr align="center">
<td colspan="2"><input type="submit" value="insérer"></td>
</tr>
</table>
</form>

--------------------------------- A2.php (extrait) -----------------------------------
<?php
echo '<td>input type ="text" name ="français" : </td>';

8 réponses

CHAP26 Messages postés 35 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 16 octobre 2011 11
15 janv. 2008 à 08:56
Bonjour,

Deux solutions pour récupérer une variable avec un formulaire :
echo '<td>input type ="text" name ="'.$_REQUEST['français'].'" : </td>';
ou de préférence (vu qu'il s'agit d'un formulaire) :
echo '<td>input type ="text" name ="'.$_POST['français'].'" : </td>';

Cordialement

David
0
CHAP26 Messages postés 35 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 16 octobre 2011 11
15 janv. 2008 à 09:01
Re,

Je viens de relire et j'ai commis 2 coquilles :

C'est plutôt :
echo '<td><input type ="text" name="français" value ="'.$_POST['français'].'" /></td>';

David
0
tintin8895 Messages postés 9 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 février 2008
16 janv. 2008 à 08:21
Bonjour à tous et un grand merci à Chaps26.

Ton intervention a été pertinente et la réponse apportée fonctionne parfaitement, me permettant ainsi d'aborder la dernière phase qui désormais affiche le message d'erreur suivant, signalant qu'il ne trouve pas le contenu de la variable francais</gras. Il me semble pourtant qu'il n'y a pas de différence entre le traitement de cette variable et celui des autres>.
Merci d'avance de te pencher sur cette question.

------------- Message d'erreur ---------------------------------
Notice: Undefined index: <gras>francais
in c:\program files\easyphp1-8\www\site mffe arradon. portable\php\anglais\anglais_inserer2tableanglaisvoc.php on line 34
L'insertion a été correctement effectuéeResource id #4
------------- Fin --------------------------------------------------------

Je resitue le contexte : Le formulaire A1.html permet la saisie d'un mot français et envoie le terme à A2.php
Si ce terme est déja présent dans la base, alors A2.php le signale autrement il affiche un formulaire plus complet et les données sont envoyées à A3.php qui les enregistre.

------------------------- A2.php --------------------------------------
<HTML>
<HEAD>
<TITLE>Enregistre les données dans la table anglaisvoc</TITLE>
<META http-equiv="description" content="Enregistre les données dans la table anglaisvoc">
<META http-equiv="keywords" content="">
</HEAD>
<body>
<script language="javascript">
<!-- Début
if (window.screen)
{
if (screen.width<800) css="../../feuille640.css";
else if (screen.width<1024) css="../../feuille800.css";
else css="../../feuille1024.css";}
document.writeln('<link rel="stylesheet" href="'+css+'" type="text/css">');
</script>

<?php
// Inclusion du fichier de connexion à la base de données
include "mysql_conf.inc.php";

// Connexion à MySql
$link=mysql_connect($host,$login) or die ('Erreur :'.mysql_error() );

// Sélection de la base
$base = mysql_select_db($base);

if (!$base)
{echo 'impossible d\'ouvrir la base.';
}
else
{echo 'Base correctement sélectionnée. ';
}

// Récupération du champ
if(isset($_POST['francais'])) $francais=$_POST['francais'];
else $francais="";

// Requète
$select = "SELECT Niveau,Francais,Anglais,Commentaire FROM anglaisvoc WHERE Francais = '$francais'";
$result =mysql_query($select,$link) or die ('Erreur :'.mysql_errno().mysql_error());
$rows = mysql_num_rows($result);

if ($rows) {
// Le terme est déjà présent dans la table donc affichage des enregistrements correspondant
echo '<table>'."\n";
echo '<tr>';
echo '<td><p align="center">Niveau : </td>';
echo '<td><p align="center">Français : </td>';
echo '<td><p align="center">Anglais : </td>';
echo '<td><p align="center">Commentaire : </td>';
echo '</tr>'."\n";

// Résultats
while ($rows=mysql_fetch_array($result))
{
echo '<tr>';
echo '<td><p align="center">'.$rows['Niveau'].'</td>';
echo '<td><p align="center">'.$rows['Francais'].'</td>';
echo '<td><p align="center">'.$rows['Anglais'].'</td>';
echo '<td><p align="center">'.$rows['Commentaire'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else {echo 'Aucun enregistrement correspondant à la valeur saisie';

echo '<form name="insertion" action="A3.php" method="POST">';
echo '<table>'."\n";
echo '<tr>';
echo '<td>Français</td>';
echo '<td><input type ="text" name="français" value ="'.$francais.'" /></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td>Anglais</td>';
echo '<td><input type="text" name="anglais"></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td>Niveau (1 à 6)</td>';
echo '<td><input type="text" name="niveau"></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td>Verbe régulier</td>';
echo '<td><input type="text" name="verberegulier"></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td>Verbe irrégulier</td>';
echo '<td><input type="text" name="verbeirregulier"></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td>Forestier</td>';
echo '<td><input type="text" name="forestier"></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td>Commentaire</td>';
echo '<td><input type="text" name="commentaire"></td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td colspan="2"><input type="submit" value="insérer"></td>';
echo '</tr>'."\n";
echo '</table>'."\n";
echo '</form>';
}
?>
</body>
</html>
------------------------------ Fin de A2.php ----------------------------------------------

------------------------------ A3.php -------------------------------------------------------
<html>
<head>
<title>Insertion de données de la table anglaisvoc : partie 2</title>
</head>
<body>
<script language="javascript">
<!-- Début
if (window.screen)
{
if (screen.width<800) css="../../feuille640.css";
else if (screen.width<1024) css="../../feuille800.css";
else css="../../feuille1024.css";}
document.writeln('<link rel="stylesheet" href="'+css+'" type="text/css">');

//Moteur
if(self==top)
{
top.location.href="../../Renvoi-moteur.html"}
// End -->
</script>

<?php
// Inclusion du fichier de connexion à la base de données
include "mysql_conf.inc.php";

// Connexion à MySql
$link=mysql_connect($host,$login) or die ('Erreur :'.mysql_error() );

// Sélection de la base
$base = mysql_select_db($base);

//récupération des valeurs des champs:
$niveau = $_POST["niveau"] ;
$francais=$_POST["francais"];
$anglais = $_POST["anglais"] ;
$verberegulier = $_POST["verberegulier"] ;
$verbeirregulier = $_POST["verbeirregulier"] ;
$forestier = $_POST["forestier"] ;
$commentaire = $_POST["commentaire"] ;

//création de la requête SQL:
$sql = "INSERT INTO anglaisvoc (niveau, francais, anglais, verberegulier, verbeirregulier, forestier, commentaire)
VALUES ( '$niveau', '$francais', '$anglais', '$verberegulier', '$verbeirregulier', '$forestier', '$commentaire') " ;

//exécution de la requête SQL:
$requete = mysql_query($sql, $link) or die( mysql_error() ) ;

//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo("L'insertion a été correctement effectuée");
// Affichage des enregistrements
// $select = 'SELECT count(id) FROM anglaisvoc WHERE Niveau = "3"';
// $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
// $row = mysql_fetch_row($result);
// $total = $row[0];
// echo 'total = ' . row;

$sql = 'SELECT COUNT(*) FROM anglaisvoc WHERE Niveau = "3"';
$requete = mysql_query($sql, $link) or die( mysql_error() ) ;
// $res = mysql_query('SELECT COUNT(Niveau) WHERE Niveau =="3" AS total FROM anglaisvoc') OR die(mysql_error());
// $row = mysql_fetch_assoc($res);
echo "$requete";

// echo 'total = ' . $row['total'];

echo '<p><a href="A1.html">Suite</a></p>';
}
else
{
echo("L'insertion a échouée") ;
}
?>
</body>
</html>
--------------------------------------------- Fin de A3.php ----------------------------------
0
Bonjour,

tu n'aurais pas une difference de francais avec ou sans cédille ? avec le name du champ de A1.html
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tintin8895 Messages postés 9 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 février 2008
16 janv. 2008 à 13:49
Bonjour Alain 42 et merci de ton intervention,

Malheureusement, non, comme tu peux le constater ci-dessous, et de toute façon, c'est le contenu de la variable $francais de A2.php qui est transmis à A3.php et pas celui de A1.html


---------------------- A1.html ------------------------------
<form name="insertion" action="A2.php" method="post">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>Français</td>
<td><input type="text" name="francais"></td>
</tr>

<tr align="center">
<td colspan="2"><input type="submit" value="insérer"></td>
</tr>
</table>
</form>
0
Bonsoir,

est ce que dans la page A2.php tu as la valeur dans le champ francais qui s'affiche ?

sinon mets un echo dans A2.php

après:

// Récupération du champ
if(isset($_POST['francais'])) $francais=$_POST['francais'];
else $francais="";

echo "Valeur recue: "$francais;
0
CHAP26 Messages postés 35 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 16 octobre 2011 11
16 janv. 2008 à 21:32
Bonjour,

Ton erreur vient bien d'un problème de cédille comme l'a dit Alain42.

Sur A1.html tu as le champs suivant :
<input type="text" name="francais">

Donc sur A2.php, tu récupères bien $_POST['francais'] mais dans A2.php tu attribues ta variable à un champs nommé français (avec cédille) :
<input type ="text" name="français" value ="'.$francais.'" />

C'est pour ça que dans A3.php ta variable est indéfinie.

Modifie ta page A2.php :
<input type ="text" name="français" value ="'.$francais.'" /> doit devenir :
<input type ="text" name="francais" value ="'.$francais.'" />

Cordialement

David
0
tintin8895 Messages postés 9 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 février 2008
17 janv. 2008 à 10:23
Bonjour,

En effet, j'avais bien entendu tort et n'avais pas vu cette erreur provenant de cette erreur de cédille.
Un grand merci à Chaps26 et Alain42 ainsi qu'aux autres personnes qui se seraient penchées sur ce problème.
0