comment appler une fonction javascript dans un script php ?
j'ai essayer avec un echo mais ca ne marche pas !!
comment appler une fonction javascript dans un script php ?
j'ai essayer avec un echo mais ca ne marche pas !!
Bonjour,un peu juste comme description.Envoyé par CROSS
Peux-tu donner le code que tu as testé, qu'on puisse en partir pour t'aider ?
A+
voici le code en question il est decomposer en plusieur fichier le premier sert juste a la mise en page et contien le code en javascript:
le deuxieme contient le liste deroulante ainsi que l'appel de la fonciton javascript qui me permet de de faire la somme total(mais ca ne marche pas )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Choisir sa config</title> <? require_once'ajax.php'; connect(); ?> <script type="text/javascript" language="javascript"> function calcule() { ram_prix = document.getElementById('ram').value; ecran_prix = document.getElementById('ecran').value; ecran2_prix = document.getElementById('ecran2').value; cson_prix = document.getElementById('cson').value; var le_total=0; le_total = parseInt(ram_prix,10)+ parseInt(ecran_prix,10)+ parseInt(ecran2_prix,10)+parseInt(cson_prix,10); document.getElementById('le_total').innerHTML = (isNaN(total))?"0":total; } </script> </head> <body> <?php echo "<form id='form' method='post' action='test2.php' > <table border='1'> <tr> <td rowspan ='13' width='40%'><img src='EC448913be5096e.jpg' /></td> <td width='3000'></td> </tr> <tr> <td><strong>Type</strong></td> <td><strong>Produit</strong></td> <td><strong>Prix</strong></td> <td><strong>Description</strong></td> </tr> <tr> <td>Ram </td> <td>"; include 'ram.php'; echo '</td> </tr> <tr> <td>Ecran</td> <td>'; include 'ecran.php'; echo'</td> </tr> <tr> <td>Ecran2</td> <td>'; include 'ecran2.php'; echo "</td> </tr> <tr> <td>Carte Son</td> <td>"; include 'cson.php'; echo "</td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td><strong>total</strong></td> <td></td> <td id='total'>0</td> <td></td> </tr> <tr> <td> </td> <td></td> <td></td> <td><input type='submit' name='Submit' value='prendre en compte les modifications' /></td> </tr> </table> </form>"; ?> </body> </html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 <?php //////////////////////////////////////////////////////////////// //declaration des variables //////////////////////////////////////////////////////////////// //decalration des differentes ram $var='2 giga'; $var1='3 giga'; $var2='4 giga'; // on crée la requête SQL $table = 'conf_ram'; $sql = "SELECT * FROM $table WHERE nom='$var'"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours echo '<form method="post" action="test2.php">'; echo '<select name="dd" size="1" onChange="ram.value=('.def($var,$table).'); calcule();"> <option value="0"' ; if(!isset($_POST['dd']) || $_POST['dd']==0 ){echo 'selected';} echo '> '.$var. '</option>; <option value="1"'; if(@$_POST['dd']==1){echo 'selected'; } echo '>' .$var1. '</option>; <option value="2"' ; if(@$_POST['dd']==2){echo 'selected'; } echo '>' .$var2. '</option>;'; } echo '<td><input type="text" id="ram" value="'; require_once 'ajax.php'; if(!isset($_POST['dd']) || $_POST['dd'] == 0){ prix($var,$table); echo ';calcule();" disabled="disabled" /></td>'; echo '<td>'; desc($var,$table); } if(@$_POST['dd'] == 1){ prix($var1,$table); echo ';calcule();" disabled="disabled" /></td>'; echo '<td>'; desc($var1,$table); } if(@$_POST['dd'] == 2){ prix($var2,$table); echo ';calcule();" disabled="disabled" /></td>'; echo '<td>'; desc($var2,$table); } echo '</td>'; ?>
Pour appeler une fontion, tu fais :
[CODE]echo "<script>maFonction()</script>"[CODE]
où maFonction() est ta fonction ;-)
heu sniff ca marche pas !!! :-( j'ai essayer ta solution je l'ai meme mis dans le onchange en haut dans la declaration du select et ca ne change rien
Ce que je ne comprends pas ce que je viens de mettre un alerte et la chaque fois que je clik il m'affiche bien le message !!! quelqu'un aurait une astuce
je pense savoir d'ou ca vient mais je n'arrive pas a resoudre le pb
l'erreur vient de mon onchange
le voici :
c'est a partir d'ici que l'alert ne fonctionne plus !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo '<select name="dd" size="1" onChange=\'al(); ram.value=('.def($var,$table).');calcule();\'>
sinon, rien qu'en survolant ton text, j'ai vu que tu métais plein de @.
a éviter absolument!!!!!!!
(sauf lors de l'ouverture d'un flux je crois)
Cela ralentit beaucoup beaucoup beaucoup l'execution du script.
Tu as la fonction isset(), sert toi en![]()
yep, je ne savais que le @ ralentissait le script ceux ci dit j'avais utiliser le @ mais aussi le isset. je les laissé juste par precautions ceci dit ils n'ont plus lieux d'etre donc je les ai retiré sur tes conseils. Sinon toujours rien
j'ai du nouveau en trifouillant le cade j'en suis arriver a la conclusion suivante.
le probleme ce situe dans mon onChange et plus particuliemrement dans la focntion calcul
(al() est ma fonction d'affichage) si je place al() apres total et que je lui demande d'afficher total rien ne se passe mais si je le laisse a la place cidessus la je vois bien ram_prix,ecran_prix ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function calcule() { ram_prix = document.getElementById('ram').value; ecran_prix = document.getElementById('ecran').value; ecran2_prix = document.getElementById('ecran2').value; cson_prix = document.getElementById('cson').value; al('ram_prix'); le_total = parseInt(ram_prix,10)+ parseInt(ecran_prix,10)+ parseInt(ecran2_prix,10)+parseInt(cson_prix,10); document.getElementById('le_total').innerHTML = (isNaN(total))?"0":total; }
Les copier/coller nécessitent quelques adaptations
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 le_total = parseInt(ram_prix,10)+ parseInt(ecran_prix,10)+ parseInt(ecran2_prix,10)+parseInt(cson_prix,10); document.getElementById('le_total').innerHTML = (isNaN(total))?"0":le_total;![]()
A+
yop merci sinon j'ai un probleme maintenant ce qu'il me mets pas directement le total il faut que je choisit un autre champs pour que le resultat apparaissent
en gros pour simplifier:
ce que j'ai ce que je devrait avoir
champs total champs total
4 giga 0 4 giga 60
2 giga 60 2 giga 20
3 giga 20 3 giga 40
quelqu'un aurait une idée?
j'ai essayer ca mais ca succes ce la ne m'affiche meme plus l'addition
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo '<select name="dd" size="1" onChange="ram.value=('.def($var,$table).'*this.value);calcule();"\>
Il vaudrait mieux revenir à l'étape précédente ...Envoyé par CROSS
Sinon, pas bien compris ton décalage, mais essaye en ajoutant ton calcul aussi sur onmouseup et onkeyup (en cas de sélection au clavier) ...
![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager