application tableau

djiro steve
Invité n'ayant pas de compte PHPfrance

30 juin 2011, 21:25

salut les amis,
j'ai un problème avec php.
j'ai crée un formulaire avec un champ de saisie nommé "nom" et 2 boutons. l'un de type submit et l'autre de type bouton que j'ai nommé bouton.
A l'aide de ce formulaire et du bouton de type submit, je veux entrer des données qui seront ajouter automatiquement dans un tableau $tab.
ensuite à l'aide du deuxième bouton j'affiche ce que j'ai entré manuellement dans le tableau.
j'ai essayé mais je n'y arrive pas. Aidez moi.
voila ce que j'ai fais:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="steve" />

<title>Untitled 1</title>
</head>

<body>
<form action="application.php" method="POST">
<label> Entrer le premier mot </label><input type="text" name="nom" size="30" />
<br />
<input type="submit" value="Entrer" />
<input type="button" value="Afficher" name="aff"/>
</form>
<?php
if(isset($_POST["nom"]))
{
$nom = $_POST["nom"];
$tab[ ] = array($nom);
}

if($_POST["aff"] == "Afficher")
{
for($i=0; $i<count($tab); $i++)
{
echo "l'element N° $i du tableau est: ", $tab[$i];
echo "<br />";
}
}
?>

</body>

</html>

Mammouth du PHP | 804 Messages

01 juil. 2011, 01:45

Bonjour,

Ton bouton afficher il ne risque pas de faire grand chose si tu ne lui assigne pas une action via une fonction quelconque.

au plus simple fais une fonction qui afficherai tes variables grace à un simple echo

au plus simple fais un truc comme ca avec deux submit

Code : Tout sélectionner

<?php switch($action){ case "Entrer": echo "je valide"; break; case "Afficher": echo "j'affiche $nom"; break; default: } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta name="author" content="steve" /> <title>Untitled 1</title> </head> <body> <form action="<?php echo $_SERVER['$PHP_SELF']?>" method="POST"> <label> Entrer le premier mot </label> <input type="text" name="nom" size="30" /> <input type="submit" value="Entrer" name="action" /> <input type="submit" value="Afficher" name="action"/> </form> </body> </html>

djiro steve
Invité n'ayant pas de compte PHPfrance

04 juil. 2011, 13:33

merci car c'est un coin d'ombre que tu viens d’éclaircir. :)
mais ce que je veux encore faire et c'est le but de mon exercice c'est par exemple:
supposons que la table $tab[] = array (1,4,78,56,89,6)
alors quand je entre 34,23,788,76 dans le champs de saisi et que je valide:
les éléments de la table $tab augmentent et la table contient désormais les éléments suivant: $tab[] = array (1,4,78,56,89,6,34,23,788,76 )
après tout ça, je veux pouvoir récupérer tous ces éléments, les afficher et aussi calculer la somme de tous les elements du tableau $tab comme par exemple:
1+4+78+56+89+6+34+23+788+76

Mammouth du PHP | 672 Messages

04 juil. 2011, 14:04

merci car c'est un coin d'ombre que tu viens d’éclaircir. :)
mais ce que je veux encore faire et c'est le but de mon exercice c'est par exemple:
supposons que la table $tab[] = array (1,4,78,56,89,6)
alors quand je entre 34,23,788,76 dans le champs de saisi et que je valide:
les éléments de la table $tab augmentent et la table contient désormais les éléments suivant: $tab[] = array (1,4,78,56,89,6,34,23,788,76 )
après tout ça, je veux pouvoir récupérer tous ces éléments, les afficher et aussi calculer la somme de tous les elements du tableau $tab comme par exemple:
1+4+78+56+89+6+34+23+788+76
Il y a plusieurs choses :
1. Il faut que tu "transformes" le contenu de ton input (une chaîne de valeurs séparées par des ",") en tableau => explode().
2. Ajouter le tableau obtenu au tableau de base => array_merge()
3. Calculer la somme => array_sum()

Mammouth du PHP | 804 Messages

04 juil. 2011, 16:43

2 petits exemple simple

$somme=0;

//$_POST[nom] = "12,15,8,7,54";
$tab = explode(",", $_POST["nom"]);	

for ($n=0 ; $n <= count($tab); $n++)
{	
$cle = $tab[$n];
echo "+ ".$cle."<br>";
$somme = $somme + $cle;
}

//exemple simple boucle
echo "for: ".$somme."<br>";

//exemple avec array_sum
echo "array_sum: ".array_sum($tab)."<br>";

Mammouth du PHP | 2278 Messages

04 juil. 2011, 19:09

Je dirais que:
on peut imaginer un formulaire qui se réappelle avec sur un des deux boutons ou les deux un minimum de javascript
supposons que ton script se nomme entree.php et que le résultat final soit transmis à enregistrer.php
Si ça ne marche pas, c'est que je me suis trompé en adaptant et transcrivant un code dont je me sers très souvent...
Je préfère tout balancer par print, ce qui oblige à mettre des simples quotes dans les parties html... mais c'est juste une manie à moi
<script language="JavaScript">

var actions = new Array();

	actions[1] = 'entree.php';

	actions[12] = 'enregistrer.php';

function change_action (action)

{

	action=actions[action];

	document.forms.formulaire.action=action;

}
</script>
</head>
</body>
<?PHP
$le_nom = isset($_POST['nom'])? $_POST['nom'] : "";
print "
 <form id = 'formulaire' 'name='texte' method='post'> <!-- il faut se servir de id, et mettre formulaire si c'est ce qu'on met dans change_action(action)

<label> Entrer le premier mot </label><input type='text' name='nom' size='30' value = ='$le_nom' />

<button class='autres' onclick='change_action (1)' type='submit'>Vérifier</button>

<button class='autres' onclick='change_action (2)' type='submit'>Enregistrer</button>
</form>";
?>
...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

djiro steve
Invité n'ayant pas de compte PHPfrance

05 juil. 2011, 03:22

vraiment merci a tous.
cependant avec l'exemple de dogmongo je suis obligé d'entrer plusieurs elements séparer par des virgules pour que ça marche.
sans doute, je me suis mal expliqué. excusez moi.
la vrai explication c'est: entrer 1 element dans le champ et valider avec le bouton valider pour que l'elemnt soit ajouté au tableau.
merci d'avance les amis

Mammouth du PHP | 672 Messages

05 juil. 2011, 09:46

vraiment merci a tous.
cependant avec l'exemple de dogmongo je suis obligé d'entrer plusieurs elements séparer par des virgules pour que ça marche.
sans doute, je me suis mal expliqué. excusez moi.
la vrai explication c'est: entrer 1 element dans le champ et valider avec le bouton valider pour que l'elemnt soit ajouté au tableau.
merci d'avance les amis
Ben dans ce cas c'est la même chose en plus simple, vu que tu n'as pas à éclater le contenu du formulaire :mrgreen:

ceci-dit, l'exemple de dogmongo fonctionne. Tu te retrouveras avec un tableau à une entrée, c'est tout...

Mammouth du PHP | 804 Messages

05 juil. 2011, 10:28

dans ce cas regard edu coté de implode :wink:

djiro steve
Invité n'ayant pas de compte PHPfrance

06 juil. 2011, 00:58

:) ça marche!!!!!!!!!!
merci pour tout
ah je vais vous emmerder avec mes problèmes de php maintenant :mrgreen:

A très bientôt!!!