Page 1 sur 1

onclick

Posté : 25 mai 2006, 22:32
par grattezdédé
Je cherche à lancer une fonction depuis un bouton. La function marche parfaitement si je la lance au chargement mais pas depuis le bouton.
Voir code ci dessous. (pas parfait!)

<html>
<head>
<title>exo1.php</title>
<?php
$val0=0;
$val1=0;
$val2=0;
$val3=0;
$val4=0;
$res1=0;
$res2=0;
$res3=0;
$res4=0;
echo "<table border=\"1\">\n";
echo "<tr>\n";

function aleatoire(){
$nombre = array();
global $res1;
global $res2;
global $res3;
global $res4;
for ($i = 0 ; $i < 5; $i++) {
$nombre[$i] = RAND(0,100);
echo "<td>" . $nombre[$i] ."</td>\n";
switch ($i) {
case 0:
$val0= $nombre[$i];
case 1:
$val1= $nombre[$i];
case 2:
$val2= $nombre[$i];
case 3:
$val3= $nombre[$i];
case 4:
$val4= $nombre[$i];
}
}


$res1= $val1-$val0;
$res2= $val2 - $val1;
$res3= $val3 - $val2;
$res4= $val4 - $val3;

echo "</tr>\n";
echo "</table>\n";
}




aleatoire();
//calcul();

?>

<?php
function calcul() {
global $res1;
global $res2;
global $res3;
global $res4;

echo "<table border=\"1\">\n";
echo "<tr>\n";
echo "<td>" . $res1 ."</td>\n";
echo "<td>" . $res2 ."</td>\n";
echo "<td>" . $res3 ."</td>\n";
echo "<td>" . $res4 ."</td>\n";


echo "</tr>\n";
echo "</table>\n";
}
?>
</head>

<body>
<table width="150" border="1">
<tr>
<td><form method="post" action="exo1.php">
<input type="submit" value="Retirer">
</form>
</td>
<td><form action="exo1.php">
<input type="button" value="calculer" onclick="calcul()">
</form>
</td>
</tr>
</table>
</body>

</html>

La fonction aleatoire se lance très bien. Si je supprime les // devant calcul() la fonction de lance juste après aleatoire() donc le code est correct. C'est depuis <td><form action="exo1.php">
<input type="button" value="calculer" onclick="calcul()">
</form>
que ça ne marche pas.

Merci

Posté : 25 mai 2006, 23:00
par Truc
Salut,

Un code est bien mieux présenté entre balises
 tu peux donc t'en servir à volonté  :wink: 

Sinon tu confonds php et javascript.

Les fonction sont en php or "onclick" est un événement javascript. Ce que tu veux faire n'est donc pas possible comme ça.

avec javascript

Posté : 25 mai 2006, 23:06
par grattezdédé
code modifier avec javascript mais marche toujours pas.
:(
:(
<html>
<head>
	<title>exo1.php</title>
<?php
$val0=0;
$val1=0;
$val2=0;
$val3=0;
$val4=0;
$res1=0;
$res2=0;
$res3=0;
$res4=0;
echo "<table border=\"1\">\n";
echo "<tr>\n";

function aleatoire(){
$nombre = array();
global $res1;
global $res2;
global $res3;
global $res4;
for ($i = 0 ; $i < 5; $i++) {
	$nombre[$i] = RAND(0,100);
echo   "<td>" . $nombre[$i] ."</td>\n";
	switch ($i) {
	case 0:
		$val0= $nombre[$i];
	case 1:
		$val1= $nombre[$i];
	case 2:
		$val2= $nombre[$i];
	case 3:
		$val3= $nombre[$i];
	case 4:
		$val4= $nombre[$i];
	}
	}
	

$res1= $val1-$val0;
$res2= $val2 - $val1;
$res3= $val3 - $val2;
$res4= $val4 - $val3;
	
echo "</tr>\n";
echo "</table>\n";
}




aleatoire();
//calcul(); 

?>


</head>

<body>
<script language="javascript">
function calcul() {
global $res1;
global $res2;
global $res3;
global $res4;

echo "<table border=\"1\">\n";
echo "<tr>\n";
echo   "<td>" . $res1 ."</td>\n";
echo   "<td>" . $res2 ."</td>\n";	
echo   "<td>" . $res3 ."</td>\n";
echo   "<td>" . $res4 ."</td>\n";

  
echo "</tr>\n";
echo "</table>\n";
} 
</script>
<table width="150" border="1">
  <tr>
    <td><form method="post" action="exo1.php">
       <input type="submit" value="Retirer">
  	   </form>
	</td>
    <td><form>
        <input type="button"  value="calculer" onclick="calcul();">
		</form>
	</td>
  </tr>
</table>
</body>

</html>

Posté : 25 mai 2006, 23:26
par iclo
Désolé, je suis peut-être trop fatigué mais pour moi ta fonction ressemble toujours à du php. as-tu bien compris la différence fondamentale entre php et Javascript, et le modèle client serveur en général ?

Posté : 26 mai 2006, 01:54
par artotal
De plus le php et le javascri^t sont fondamentalement trop different pour fonctionner ensemble, peut être en mettant du js dans le php, il sera traité coté client...
Et les evenements passeront
Mais de toute façon ton code fait 10 km, pour se que tu veux en faire ¿?

Posté : 26 mai 2006, 06:44
par jpaul
De plus le php et le javascri^t sont fondamentalement trop different pour fonctionner ensemble, peut être en mettant du js dans le php, il sera traité coté client...
Et les evenements passeront
Mais de toute façon ton code fait 10 km, pour se que tu veux en faire ¿?
C'est un peu rapide, si tu avais raison, ajax n'existerait pas...

Pour grattezdédé : si tu veux faire du javascript, je pense que ça vaut la peine d'utiliser Firefox, dans le menu outils, il y a une console javascript bien utile, surtout pour ceux qui comme moi font du javascript occasionnellement ;) .