[PHP] Calcul dans un formulaire

Résolu/Fermé
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 - 19 août 2008 à 21:25
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 - 22 août 2008 à 12:05
Bonjour à tous,

je me suis mis depuis quelques jours au PHP, et là, je rencontre un petit problème qui me gène énormément mais la réponse est peut-être très simple pour celui qui a l'habitude du PHP.

Ce que je désire faire, c'est créer un petit formulaire, où le visiteur pourra rentrer des chiffres, et lorsqu'il clique sur le bouton "Calcul", un calcul se fait grâce au PHP et met les réponses dans des cases dans une autre partie du formulaire.

Si j'ai fait des choses qui ne vont pas, n'hésitez surtout pas à me le dire, pour que je corrige, et n'oubliez pas que je débute, alors soyez indulgents. Je vous remercie d'avance pour l'aide que vous m'apporterez.


Je vous mets le code source:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Topo-Fr3d</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
</head>

<body>
<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
<p class="soustitre">XY Par Gisement-Distance</p>

<form method="post" action="xy_gd.php">
<fieldset class="fieldset_gauche">
<legend> Coordonnées du point de base : </legend>
<p>
<label for="x1">X : </label>
<input type="text" name="x1" id="x1" size="20" maxlength="20" />
</p>

<p>
<label for="y1">Y : </label>
<input type="text" name="y1" id="y1" size="20" maxlength="20" />
</p>
</fieldset>

<fieldset class="fieldset_droit">
<legend>Gisement et Distance à entrer : </legend>
<p>
<label for="gisement">Gisement : </label>
<input type="text" name="gisement" id="gisement" size="20" maxlength="20" />
</p>

<p>
<label for="distance">Distance : </label>
<input type="text" name="distance" id="distance" size="20" maxlength="20" />
</p>
</fieldset>

<input type="submit" value="Calcul" class="calcul_1"/>
<input type="reset" value="Effacer" class="calcul_2"/>

<p><br /><br /></p>

<?php
if (isset($_POST['x1']) and isset($_POST['y1']) and isset($_POST['gisement']) and isset($_POST['distance']))
{
$x1 = $_POST['x1'];
$y1 = $_POST['y1'];
$gisement = $_POST['gisement'];
$distance = $_POST['distance'];
}
else
{
echo "Marche pas !!";
$x1 = "";
$y1 = "";
$gisement = "";
$distance = "";
}

function xy_gd($x1, $y1, $gisement, $distance)
{
$x2 = $x1 + $y1;
}


?>
<fieldset class="fieldset_resultat">
<legend>Coordonnées du point calculé : </legend>
<p>
<label for="$x2">X : </label>
<input type="text" name="$x2" id="$x2" size="20" maxlength="20" action="<?php echo $x2 ?>" />
</p>

<p>
<label for="y2">Y : </label>
<input type="text" name="y2" id="y2" size="20" maxlength="20" />
</p>
</fieldset>


</form>

</body>
</html>
A voir également:

10 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 août 2008 à 21:51
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Topo-Fr3d</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
</head>

<body>
<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
<p class="soustitre">XY Par Gisement-Distance</p>

<?php
//fonctions
function xy_gd($x1, $y1, $gisement, $distance)
{
$x2 = $x1 + $y1;
}
//si formulaire posté
if (isset($_POST['x1']) and isset($_POST['y1']) and isset($_POST['gisement']) and isset($_POST['distance']))
{
$x1 = $_POST['x1'];
$y1 = $_POST['y1'];
$gisement = $_POST['gisement'];
$distance = $_POST['distance'];
$x2=xy_gd($x1, $y1, $gisement, $distance); //il ne suffit pas de mettre une fonction, il faut l'appeler
$y2=xy_gd($x1, $y1, $gisement, $distance); //si tu utilises $y2, tu dois aussi le calculer avant, la je t'i mis du bidon
}
else
{
$x1 = "";
$y1 = "";
$x2=""
$y2="";
$gisement = "";
$distance = "";
}




?>
<form method="post" action="xy_gd.php">
<fieldset class="fieldset_gauche">
<legend> Coordonnées du point de base : </legend>
<p>
<label for="x1">X : </label>
<input type="text" name="x1" id="x1" size="20" maxlength="20" value="<?php echo $x1 ;?>" />
</p>

<p>
<label for="y1">Y : </label>
<input type="text" name="y1" id="y1" size="20" maxlength="20" value="<?php echo $y1 ;?>"/>
</p>
</fieldset>

<fieldset class="fieldset_droit">
<legend>Gisement et Distance à entrer : </legend>
<p>
<label for="gisement">Gisement : </label>
<input type="text" name="gisement" id="gisement" size="20" maxlength="20" value="<?php echo $gisement ;?>"/>
</p>

<p>
<label for="distance">Distance : </label>
<input type="text" name="distance" id="distance" size="20" maxlength="20" value="<?php echo $distance ;?>"/>
</p>
</fieldset>

<input type="submit" value="Calcul" class="calcul_1"/>
<input type="reset" value="Effacer" class="calcul_2"/>

<p><br /><br /></p>


<fieldset class="fieldset_resultat">
<legend>Coordonnées du point calculé : </legend>
<p>
<label for="$x2">X : </label>
<input type="text" name="$x2" id="$x2" size="20" maxlength="20" action="<?php echo $x2 ?>" />
</p>

<p>
<label for="y2">Y : </label>
<input type="text" name="y2" id="y2" size="20" maxlength="20" />
</p>
</fieldset>


</form>

</body>
</html>
3
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
19 août 2008 à 22:17
Tout d'abord, je tiens à te remercier pour ton post. Malheureusement, la variable $x2 ne veut pas s'afficher dans le dernier fieldset, pourtant, la fonction a été lancé (j'ai mis un echo dedans). Sais tu d'où vient le problème ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009
19 août 2008 à 22:21
Un pb la:

<input type="text" name="$x2" id="$x2" size="20" maxlength="20" action="<?php echo $x2 ?>" />

dans un input c'est pas action= mais value=

<input type="text" name="x2" id="x2" size="20" maxlength="20" value="<?php echo $x2 ?>" />


et ne mets pas $x2 comme name et id mais x2, il ne faut pas de $ dans les définitions des champs
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
20 août 2008 à 01:34
bonjour,


enleve les "return $x2" dans tes conditions "if($gisement >= 0 AND $gisement <= 100) etc..."

ccordialement, dreamfeeder.
1
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
20 août 2008 à 18:38
J'ai fait ce que tu as dit, ça marche nickel, je te remercie :)
0
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
20 août 2008 à 22:48
Bonjour,

j'ai de nouveau un problème, mais sur une autre page internet.
Dans une fonction, je fais une condition if-elseif-elseif-else, et ce que je ne comprend pas, c'est que ça saute directement à else. On dirait que ça ne prend pas en compte les elseif juste avant, pourtant, les conditions d'entrées des elseif sont bonnes.
D'avance, merci pour celui qui m'aide.

Voici le code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>Topo-Fr3d</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
	</head>
	
	<body>
		<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
		<p class="soustitre">Gisement-Distance par XY</p>
		
		<?php 
		
			function gisement($x1, $y1, $x2, $y2) //Fonction qui ne fonctionne pas dont je vous ai parlé
			{
				$delta_x = $x2 - $x1;
				$delta_y = $y2 - $y1;
				echo $delta_x;
				echo $delta_y;
				
				if ($delta_x = 0 AND $delta_y > 0)
				{
					$gisement = 0;
				
				}
				elseif($delta_x = 0 AND $delta_y < 0)
				{
					$gisement = 200;
					
				}
				elseif($delta_y = 0 AND $delta_x > 0)
				{
					$gisement = 100;
					
				}
				elseif($delta_y = 0 AND $delta_x < 0)
				{
					$gisement = 300;
				
				}
				elseif($delta_x > 0 AND $delta_y < 0)
				{
					$gisement = atan($delta_x / $delta_y);
					$gisement = round($gisement, 6);
					$gisement = $gisement + 200;
				}
				elseif($delta_x < 0 AND $delta_y < 0)
				{
					$gisement = atan($delta_x / $delta_y);
					$gisement = round($gisement, 6);
					$gisement = $gisement + 200;
				}
				elseif($delta_x < 0 AND $delta_y > 0)
				{
					$gisement = atan($delta_x / $delta_y);
					$gisement = round($gisement, 6);
					$gisement = $gisement + 400;
				}
				elseif($delta_x > 0 AND $delta_y > 0)
				{
					$gisement = atan($delta_x / $delta_y);
					$gisement = round($gisement, 6);

				}
				else
				{
				echo "blem";
				}
				
				return $gisement;
			}
			
			function distance($x1, $y1, $x2, $y2)
			{
				$delta_x = $x2 - $x1;
				$delta_y = $y2 - $y1;
				
				$distance = sqrt(($delta_x * $delta_x) + ($delta_y * $delta_y));
				$distance = round($distance, 6);
				
				return $distance;
			}
			
			function secure_data($data)
			{
				return htmlspecialchars($data);
			}
        
           
			//si formulaire posté
			if (isset($_POST['x1']) and isset($_POST['y1']) and isset($_POST['x2']) and isset($_POST['y2']))
			{
				$x1 = $_POST['x1'];
				$y1 = $_POST['y1'];
				$x2 = $_POST['x2'];
				$y2 = $_POST['y2'];
            
	            $gisement = gisement($x1, $y1, $x2, $y2);
	            $distance = distance($x1, $y1, $x2, $y2);
			}
			else
			{
	            $x1 = "";
				$y1 = "";
	            $gisement = "";
	            $distance = "";
	            $x2 = "";
	            $y2 = "";
			}
		
		?>
		
		
		<form method="post" action="gd_xy.php">
		
			<fieldset class="fieldset_gauche">
				<legend> Coordonnées du point 1 :  </legend>
					
							<p>
							<label for="x1">X : </label>
							<input type="text" name="x1" id="x1" size="20" maxlength="20" value="<?php echo secure_data($x1); ?>" />
							</p>

							<p>
							<label for="y1">Y : </label>
							<input type="text" name="y1" id="y1" size="20" maxlength="20" value="<?php echo secure_data($y1); ?>" />
							</p>
			</fieldset>
			
			<fieldset class="fieldset_droit">
				<legend>Coordonnées du point 2 : </legend>
							<p>
							<label for="x2">X : </label>
							<input type="text" name="x2" id="x2" size="20" maxlength="20" value="<?php echo secure_data($x2); ?>" />
							</p>
						

							<p>
							<label for="y2">Y : </label>
							<input type="text" name="y2" id="y2" size="20" maxlength="20" value="<?php echo secure_data($y2); ?>" />
							</p>
			</fieldset>
			
			<input type="submit" value="Calcul" class="calcul_1"/>
			<input type="reset" value="Effacer" class="calcul_2"/>
			

			<fieldset class="fieldset_resultat">
				<legend>Gisement-Distance obtenus : </legend>
						<p>	
						<label for="gisement">Gisement : </label>
						<input type="text" name="gisement" id="gisement" size="20" maxlength="20" value="<?php echo secure_data($gisement); ?>" />
						</p>
					
						<p>
						<label for="distance">Distance : </label>
						<input type="text" name="distance" id="distance" size="20" maxlength="20" value="<?php echo secure_data($distance); ?>" />
						</p>
			</fieldset>
		</form>
		
	</body>
</html>
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2008 à 12:03
Salut,

grosse erreur dans toutes les lignes de test

if ($delta_x = 0 AND $delta_y > 0)

le test d'égalité c'est == et pas = (erreur classique, ça arrive à tout le monde)

if ($delta_x == 0 AND $delta_y > 0)


Au passage <= inférieur ou égal à zéro
>= sup ou égal à zéro

car tu ne traites pas le cas $delta_x =0 $delta_y=0

@lain
1
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
21 août 2008 à 14:33
Tu m'es bien utile, un problème de moins ;)

A force d'en avoir, j'en aurai plus.

Merci.
0

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

Posez votre question
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
21 août 2008 à 19:16
Re-Salut,

j'ai un petit défi pour toi Alain_42.
Une page php, pour une résolution de triangle, on doit entrer au moins 3 cases dont 1 distance. Lorsqu'on appuye sur "calcul", on dirait que la page ne se soucie pas des données entrés, et donc, va tout de suite au premier if( isset ...) alors que la page doit aller vers un elseif selon les données rentrés. J espère que tu vois ce que je veux dire.
Ca me met ca comme erreur:
Warning: Division by zero in C:\Program Files\wamp\www\Site Web\calculs\reso_tri.php on line 34

La ligne 34 correspond à la fontion loicosinusbis.

Voici le code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>Topo-Fr3d</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
	</head>
	
	<body>
		<h1 title="Mon site quoi !!"><a href="index.html"> Topo-Fr3d </a><br /></h1>
		<p class="soustitre">Résolution de triangle<br /><br /><br /></p>
		
		<?php
			function radian_grade($angle) //convertit les angles radian en angle grade
			{
				$angle = ( ($angle * 180) / pi() ) / 0.9;
				return $angle;
			}
			
			function grade_radian($angle) //convertit les angles grade en angle radian
			{
				$angle = ( ($angle * 0.9) * pi() ) / 180;
				return $angle;
			}
			
			function deuxangles($angle_1, $angle_2) //obtention du 3ème angle du triangle par les 2 autres
			{
				$angle_3 = (200 - $angle_1 - $angle_2);
				return $angle_3;
			}
			
			function loicosinusbis($distance_1, $distance_2, $distance_3) //Loi du cosinus inversée pour trouver l'angle 1
			{
				$cos = acos(( ($distance_2 * $distance_2) + ($distance_3 * $distance_3) - ($distance_1 * $distance_1) ) / (2 * $distance_2 * $distance_3));
				$angle_1 = radian_grade($cos);
				return $angle_1;
			}
			
			function secure_data($data)
			{
				return htmlspecialchars($data);
			}
			
			function loisinus($distance_1, $angle_1, $angle_2) //Loi des sinus pour trouver une distance
			{
				$angle_1 = grade_radian($angle_1);
				$angle_2 = grade_radian($angle_2);
				$distance_2 = $distance_1 * sin($angle_2) / sin($angle_1);
				return $distance_2;
			}
			
			function loisinusbis($distance_1, $angle_1, $distance_2) //Loi des sinus pour trouver un angle
			{
				$angle_1 = grade_radian($angle_1);
				$angle_2 = asin( $distance_2 * sin($angle_1) / $distance_1 );
				$angle_2 = radian_grade($angle_2);
				return $angle_2;
			}
				
			//si le formulaire est posté
			if (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['d_c'])) //champ rentrés : distance a, distance b, distance c
			{
				$d_a = $_POST['d_a'];
				$d_b = $_POST['d_b'];
				$d_c = $_POST['d_c'];
				echo "1";
				$a_a = round(loicosinusbis($d_a, $d_b, $d_c), 6);
				$a_b = round(loicosinusbis($d_b, $d_a, $d_c), 6);
				$a_c = round(loicosinusbis($d_c, $d_b, $d_a), 6);
			}
			elseif (isset($_POST['d_a']) AND isset($_POST['a_a']) AND isset($_POST['a_b'])) //champ rentrés : distance a, angle A, angle B
			{
				$d_a = $_POST['d_a'];
				$a_a = $_POST['a_a'];
				$a_b = $_POST['a_b'];
				
				$a_c = round(deuxangles($a_a, $a_b), 6);
				$d_b = round(loisinus($d_a, $a_a, $a_b), 6);
				$d_c = round(loisinus($d_a, $a_a, $a_c), 6);
			}
			elseif (isset($_POST['d_a']) AND isset($_POST['a_a']) AND isset($_POST['a_c'])) //champ rentrés : distance a, angle A, angle C
			{
				$d_a = $_POST['d_a'];
				$a_a = $_POST['a_a'];
				$a_c = $_POST['a_c'];
				
				$a_b = deuxangles($a_a, $a_c);
				$d_b = loisinus($d_a, $a_a, $a_b);
				$d_c = loisinus($d_a, $a_a, $a_c);
			}
			elseif (isset($_POST['d_a']) AND isset($_POST['a_b']) AND isset($_POST['a_c'])) //champ rentrés : distance a, angle B, angle C
			{
				$d_a = $_POST['d_a'];
				$a_b = $_POST['a_b'];
				$a_c = $_POST['a_c'];
				
				$a_a = deuxangles($a_b, $a_c);
				$d_b = loisinus($d_a, $a_a, $a_b);
				$d_c = loisinus($d_a, $a_a, $a_c);
			}
			elseif (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['a_a'])) //champ rentrés : distance a, distance b, angle A
			{
				$d_a = $_POST['d_a'];
				$d_b = $_POST['d_b'];
				$a_a = $_POST['a_a'];
				
				$a_b = loisinus($d_a, $a_a, $d_b);
				$a_c = deuxangles($a_a, $a_b);
				$d_c = loisinus($d_a, $a_a, $a_c);
			}
			elseif (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['a_b'])) //champ rentrés : distance a, distance b, angle B
			{
				$d_a = $_POST['d_a'];
				$d_b = $_POST['d_b'];
				$a_b = $_POST['a_b'];
				
				$a_a = loisinusbis($d_b, $a_b, $d_a);
				$a_c = deuxangles($a_a, $a_b);
				$d_c = loisinus($d_a, $a_a, $a_c);
			}
			elseif (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['a_c'])) //champ rentrés : distance a, distance b, angle c PAS ENCORE FINI
			{
				$d_a = $_POST['d_a'];
				$d_b = $_POST['d_b'];
				$a_c = $_POST['a_c'];
				
				$a_a = loisinus($d_b, $a_b, $d_a);
				$a_c = deuxangles($a_a, $a_b);
				$d_c = loisinus($d_a, $a_a, $a_c);
			}
			else
			{	
				echo "marche pas";
	            $a_a = "";
				$a_b = "";
	            $a_c = "";
	            $d_a = "";
	            $d_b = "";
	            $d_c = "";
			}
			
		?>
		
		<form method="post" action="reso_tri.php">
			
			<fieldset class="fieldset_gauche">
				<legend>Angles du triangle : </legend>
				
				<p>
				<label for="a_a">Angle A : </label>
				<input type="text" name="a_a" id="a_a" size="20" maxlength="20" value="<?php echo secure_data($a_a); ?>" />
				</p>
				
				<p>
				<label for="a_b">Angle B : </label>
				<input type="text" name="a_b" id="a_b" size="20" maxlength="20" value="<?php echo secure_data($a_b); ?>" />
				</p>
				
				<p>
				<label for="a_c">Angle C : </label>
				<input type="text" name="a_c" id="a_c" size="20" maxlength="20" value="<?php echo secure_data($a_c); ?>" />
				</p>
			
			</fieldset>
			
			<fieldset class="fieldset_droit">
				<legend>Côtés du triangle : </legend>
				
				<p>
				<label for="d_a">Côté a : </label>
				<input type="text" name="d_a" id="d_a" size="20" maxlength="20" value="<?php echo secure_data($d_a); ?>" />
				</p>
				
				<p>
				<label for="d_b">Côté b : </label>
				<input type="text" name="d_b" id="d_b" size="20" maxlength="20" value="<?php echo secure_data($d_b); ?>" />
				</p>
				
				<p>
				<label for="d_c">Côté c : </label>
				<input type="text" name="d_c" id="d_c" size="20" maxlength="20" value="<?php echo secure_data($d_c); ?>" />
				</p>
			
			</fieldset>
			
			<input type="submit" value="Calcul" class="calcul_1bis"/>
			<input type="reset" value="Effacer" class="calcul_2bis"/>
		
		</form>
	</body>
</html>


1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2008 à 22:38
Bonsoir,

merci pour le défi,

isset veut dire que la variable existe, mais elle peut être vide, donc il faut aussi tester qu'elle n'est pas vide
donc pour tous les if et elseif tu modifies ainsi:

	
		if ((isset($_POST['d_a']) AND $_POST['d_a']!="") AND (isset($_POST['d_b']) AND $_POST['d_b']!="") AND (isset($_POST['d_c']) AND $_POST['d_c']!="")) //champ rentrés : distance a, distance b, distance c


attention aux parenthèses de combinaison des AND

@lain
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
21 août 2008 à 22:36
bonjour,

deja doit y avoir une erreur dans la fonction loicosinusbis car en rentrant 3 cotés egaux les angles affiché sont de 66,66666 degrés au lieu de 60.

Pour ta question jsuis en train de chercher je te dis si je trouve.

cordialement dreamfeeder.


EDIT: autant pour moi j'avai pas fais attention que tu voulé des grades et non des degrés ;-)
1
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
22 août 2008 à 12:05
Je vous remercie tous les deux de prendre votre temps pour me donner une bonne réponse.
J'ai mis ce que tu m'as dit Alain, et ça fonctionne parfaitement. Ce qui m'énerve, c'est que c'est tout bête, mais faut vraiment y penser.
dreamfeeder -> Nous autres géomètres, travaillons en grade, pour les calculs, c'est beaucoup plus pratique que les degrés. Ta réponse est humaine, le degré est utilisé dans beaucoup plus de domaine que le grade, donc c'est normal de se précipiter vers le degré ;)
1
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
19 août 2008 à 22:30
J'ai rectifié ce que tu m'as dit, raccourci un peu le code, une fois appuyer sur "calcul", ça lance bien la fonction, ainsi que l'opération dedans vu que j'ai mis un echo avec la variable calculée juste après et que ça me l'affiche.

Ce qui ne fonctionne toujours pas, c'est la variable x2 qui ne s'affiche pas dans le dernier fieldset.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>Topo-Fr3d</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
	</head>

	<body>
		<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
		<p class="soustitre">XY Par Gisement-Distance</p>

		<?php
		
		//fonctions
		function xy_gd($x1, $y1)
		{
			$x2 = $x1 + $y1;
			echo $x2;
		}
		
		//si formulaire posté
		if (isset($_POST['x1']) and isset($_POST['y1']))
		{
			$x1 = $_POST['x1'];
			$y1 = $_POST['y1'];

			$x2 = xy_gd($x1, $y1); //il ne suffit pas de mettre une fonction, il faut l'appeler

		}
		else
		{
			$x1 = "";
			$y1 = "";
		}




		?>
		
		<form method="post" action="xy_gd.php">
			<fieldset class="fieldset_gauche">
				<legend> Coordonnées du point de base : </legend>
				<p>
				<label for="x1">X : </label>
				<input type="text" name="x1" id="x1" size="20" maxlength="20" value="<?php echo $x1 ;?>" />
				</p>

				<p>
				<label for="y1">Y : </label>
				<input type="text" name="y1" id="y1" size="20" maxlength="20" value="<?php echo $y1 ;?>"/>
				</p>
			</fieldset>

			<fieldset class="fieldset_droit">
				<legend>Gisement et Distance à entrer : </legend>
				<p>
				<label for="gisement">Gisement : </label>
				<input type="text" name="gisement" id="gisement" size="20" maxlength="20" />
				</p>

				<p>
				<label for="distance">Distance : </label>
				<input type="text" name="distance" id="distance" size="20" maxlength="20" />
				</p>
			</fieldset>

			<input type="submit" value="Calcul" class="calcul_1"/>
			<input type="reset" value="Effacer" class="calcul_2"/>


			<fieldset class="fieldset_resultat">
				<legend>Coordonnées du point calculé : </legend>
				<p>
				<label for="x2">X : </label>
				<input type="text" name="x2" id="x2" size="20" maxlength="20" value="<?php echo $x2 ; ?>" />
				</p>

				<p>
				<label for="y2">Y : </label>
				<input type="text" name="y2" id="y2" size="20" maxlength="20" />
				</p>
			</fieldset>


		</form>

		
		<?php echo $x2 ; ?>
		
</body>
</html>

0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 août 2008 à 22:41
//fonctions
		function xy_gd($x1, $y1)
		{
			$x2 = $x1 + $y1;
			return $x2;// il faut que la fonction renvoie le résultat
			//echo $x2;
		}
0
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
20 août 2008 à 00:45
J'ai encore un problème manque de pot.

Cette fois, lorsque je clique sur "calcul", ca me vide ma page, et rien ne s'affiche, pourtant, j'ai rien touché de spécial.

Tu peux télécharger ma page php ainsi que la page CSS pour avoir une meilleur présentation :
ici



Si tu préfères avoir le code directement sur le forum, dis le moi, je le mettrai.

Merci.
0
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120
19 août 2008 à 22:57
Alors là,
tu viens de sauver mon futur site internet, je te remercie beaucoup.
Ce qui m'énerve, c'est que j'aurai du y penser, vu que j'ai des bases en langage C.

Mais là, il n'y qu'une seule variable, si je veux en retourner plusieurs, je met plusieurs return ? je pense pas.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 août 2008 à 09:58
Si tu veux en retourner plusieurs tu es obligé de passer par un array

ex $x1 $x2 $x3

dans ta fonction tu fais

$retour=array();
$retour[0]=$x1;
$retour[1]=$x2;
$retour[2]=$x3;

$return $retour;

et si appel fct est $X=fct();

tu récupéres par

la valeur de retour de $x1 par $X[0]

etc...
0
Orkok Messages postés 462 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 2 août 2009 120 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
20 août 2008 à 18:38
J'ai lu un petit tuto la dessus, merci pour l'aide apportée Alain_42, si j'ai encore un petit problème, je sais à qui parler ;)
0