[javascript] Débugguer un script

iPascal

Membre confirmé
20 Novembre 2007
54
2
Paris
Salut à tous :coucou:

Pour améliorer la facilité d'achat avec paypal sur un site dont je m'occupe, j'ai mis en place un script javascript. Ce site vends un jeu de société et grâce au script je souhaite que le prix s'affiche tout seul en fonction de la quantité choisie par le client.

Or, n'y connaissant rien en javascript, j'ai juste appris quelques bases en une journée:siffle:
Mon script est donc fonctionnel sous Safari et Firefox mais pas sur... Internet Explorer (utilisé par 70% des visiteurs!). Il me met qu'il y a une erreur sur la page et les champs ne se renseignent pas tout seul comme je le voudrais.

Je pense que la logique de mon script est bonne mais que je l'ai mal formulé (normal j'apprends!) :sick: Mon idée :
Bloc de code:
quantity = quantité de jeux
pu = prix unitaire
pureduc = prix unitaire avec réduction à partir de 4 jeux
amount = prix unitaire en fonction de la quantité 
        donc amount=pu si quantity <4 sinon amount=pureduc

Voici mon script :
Bloc de code:
<script>
function cal() 
{
var pu=document.france.pu.value;
var pureduc=document.france.pureduc.value;
var quantity=document.france.quantity.value;
if (quantity==0 || quantity=="0")
	{
	var p=""
	}
else
	{
	if(quantity<4)
		{
		var amount=pu;
		document.france.amount.value=amount;
		var p=pu*quantity;
		document.france.p.value=p;
		}
	else
		{
		var amount=pureduc;
		document.france.amount.value=amount;
		var p=pureduc*quantity;
		document.france.p.value=p;
		}
	}
}
</script>

Et mon formulaire (simplifié, en principe sous forme de tableau)
Bloc de code:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="france" id="france">
<select name="quantity" id="quantity" onchange="cal(this)">
  <option value="0">S&eacute;lectionnez la quantit&eacute;</option>
  <option value="1">1 Coffret</option>
  <option value="2">2 Coffrets</option>
  <option value="3">3 Coffrets</option>
  <option value="4">4 Coffrets</option>
  <option value="5">5 Coffrets</option>
  <option value="6">6 Coffrets</option>
  <option value="7">7 Coffrets</option>
  <option value="8">8 Coffrets</option>
  <option value="9">9 Coffrets</option>
  <option value="10">10 Coffrets</option>
</select>
<input name="pu" type="hidden" disabled="disabled" id="pu" value="29" size="5" readonly="true" />
<input name="pureduc" type="hidden" disabled="disabled" id="pureduc" value="26.10" size="5" readonly="true" />
<input name="amount" type="text" id="amount" onchange="cal(this)" size="5" maxlength="5" readonly="true"/>
<input name="p" type="text" disabled="disabled" onchange="cal(this)" size="8" readonly="true"/>
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="[email protected]" />
<input type="hidden" name="item_name" value="Coffret(s) MultipliX" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="page_style" value="MultipiX" />
<input type="hidden" name="no_shipping" value="2" />
<input type="hidden" name="return" value="http://www.multiplix.net/fr-commander/fr-paiement_reussi.html" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="lc" value="FR" />
<input type="hidden" name="bn" value="PP-BuyNowBF" />
<input type="image" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et s&eacute;curis&eacute;e" />
              <img alt="Acheter" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1" /> 
            
</form>

Note 1 : Voici la page de test pour que vous puissiez voir le problème directement. Par contre ne faîtes pas attention au code et à la présentation en tableau SVP:siffle:. Je suis en train de refaire le site en essayant de respecter les standards actuels (présentation en css...)

Note 2 : Voici la page actuelle qui est moins claire et surtout qui ne tient pas compte de la quantité. En fait lorsque le client choisit la quantité, il change la variable amount (prix) et non la variable quantity. Une fois arrivé sur le site de paypal, s'il a choisi 2 jeux à 29 euros, ça sera marqué UN jeu à 58 euros et non DEUX jeux pour 58 euros au total.

++ :coucou:

Edit: PS: après avoir rédigé mon post, je me suis aperçu que la présentation n'était pas aussi claire que ça. Je pense qu'il faudrait que je mette 1 par défaut pour la quantité pour que le visiteur voit le prix au premier coup d'oeil
 
J'ai lut en diagonale, ça a peut-être rien à voir, mais évite d'accéder aux éléments en document.formulaire.xxx...
C'est super lourd à maintenir quand tu modifie une page, et il y a des choses qui passent parfois différement d'un navigateur à l'autre. Mets plutôt des attributs "id" sur tes champs de texte, et utilise document.getElementById('monIdentifiant')
Mais sinon, les scripts qui passent partout sauf sous IE, beeen, faudra t'y habituer. ;)
 
Bon, après une lecture un peu plus approfondie, je vois rien d'anormal, mais IE a tendance à ne plus rien interpréter comme javascript dès qu'il y a un truc qui lui va pas dans la page... Vérifie tes autres scripts, en particulier ceux qui précèdent celui là, et double click sur le triangle jaune en bas à gauche dans IE pour avoir un minimum d'information sur l'erreur (bon souvent, c'est vraiment le strict minimum, mais parfois il y a la ligne, et de temps à autre le numéro est juste...)
 
As-tu essayé ta page avec un débuggeur JavaScript comme Firebug ?
 
son problème est sous ie, y'a bien un débugueur, mais, il est pas spécialement stable... Et en toute bonne logique windows pour l'activer il faut décocher la case de désactivation dans les options internet. =) (+ relancer ie + peut-être installer un truc en plus je me souviens plus)
 
Merci pour votre aide. Je n'ai pas réussi à me servir de firebug. J'ai bien réussi à lancer le débugger d'IE mais il n'a pas su corriger mon script.
Finalement j'ai trouvé mon erreur tout seul. C'était juste 2 balises qui étaient mal nommées et qui devaient entrer en conflit.
:coucou: