Probleme de variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de variable

Re: Probleme de variable

par c0v3r » 16 juin 2011, 17:02

Bon alors, cela ne vient pas de mon code PHP puisque l'actualisation de mon prix fonctionne lorsque la quantité est égale à 1.
Le problème vient sûrement du fichier javascript.

Des propositions ???

Re: Probleme de variable

par c0v3r » 15 juin 2011, 16:45

Erf personne pour me renseigner sur la perte de mon supplement lors de l'actualisation de ma quantité ???

Re: Probleme de variable

par c0v3r » 14 juin 2011, 17:15

Désolé j'ai corriger des erreur mais pas trouver la solution !

Donc en gros, j'essaye d'actualiser un prix suivant un longueur qui elle même calcule un supplément le tout fait en jquery. jusque là, pas de problème.
Je choisi ma longueur et mon prix est actualisé correctement.
Par exemple :
Prix = 10
Supplément calculé = 5
Prix total = 15

Maintenant, si je choisis une quantité, mon prix "retombe" à son prix originale
Par exemple :
Prix = 10
Supplément calculé = 5
Prix total = 15
quantité = 2
Prix total recalculé = 10

Mon code perd la valeur de mon supplément lorsque la quantité est choisie.
Par contre si je choisi d'abord une quantité de 2, mon prix ainsi que mon supplément se calcule parfaitement.

Voici le code Javascript :

Code : Tout sélectionner

function getPrice(price,product_id,supplement) { var url = 'http://www.monsite.com/images/'; var qte = $('#quantite').val(); var uiLa = $('#largeur').val(); var uiHa = $('#hauteur').val(); xhr = getxmlHttpObj(); xhr.onreadystatechange=function() { if (xhr.readyState==4) { getImageSize(url+'tassetest.png', function(size) { //alert(size.w+'x'+size.h); $( "#slider-range-ha" ).slider({ range: "min", value: 0, min: 10, max: 300, slide: function( event, uiHa ) { $( "#hauteur" ).val( uiHa.value); $('#slider-range-la').slider('value', uiHa.value); // Déplacement proportionnel slider largeur }, stop: function( event, uiHa ) { var width = Math.round((uiHa.value*size.w*10)/size.h)/10; // Calcul de la largeur suivant infos image $( "#largeur" ).val(width); } }); $( "#slider-range-la" ).slider({ range: "min", value: 0, /* Renseigner la largeur originale en cm*/ min: 10, /* Renseigner la largeur originale en cm*/ max: 300, slide: function( event, uiLa ) { $( "#largeur" ).val( uiLa.value); $('#slider-range-ha').slider('value', uiLa.value); // Déplacement proportionnel slider hauteur }, stop: function( event, uiLa ) { var height = Math.round((uiLa.value*size.h*10)/size.w)/10; // Calcul de la hauteur suivant infos image $( "#hauteur" ).val(height); /**** CALCUL DU SUPPLEMENT ****/ supplement = Math.round(((uiLa.value*height)/10000)*220); getPrice(price,product_id,supplement); /**** FIN CALCUL DU SUPPLEMENT****/ }// Fin stop function });// Fin slider range la });//Fin getImageSize document.getElementById("prixArticle").innerHTML = 'Prix = ' + xhr.responseText; } else if (xhr.readyState < 4) { document.getElementById("prixArticle").innerHTML = 'Actualisation...'; } } xhr.open("GET","ajax_onchange_price_flash.php?price="+price+"&product_id="+product_id+"&supplement="+supplement+"&largeur="+uiLa+"&hauteur="+uiHa+"&quantite="+qte,true); xhr.send(null); }


Voici mon code pour la requête :

Code : Tout sélectionner

<?php require('includes/application_top.php'); $product_id = $_GET['product_id']; $supplement = $_GET['supplement']; $uiLa = $_GET['largeur']; $uiHa = $_GET['hauteur']; $modified_price = $_GET['price']; $qte = $_GET['quantite']; //$modified_price = 0; $product_new_price_query = tep_db_query("select * from " .TABLE_PRODUCTS_ATTRIBUTES. " where products_id = '" . (int)$product_id . "'"); $product_new_price = tep_db_fetch_array($product_new_price_query); $modified_price = round(($modified_price * 1.196) + $supplement) * $qte; //echo $modified_price; $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$product_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info_ajx = tep_db_fetch_array($product_info_query); if ($new_price = tep_get_products_special_price($product_info_ajx['products_id'])) { $new_price = round(($new_price * 1.196) + $supplement) * $qte; $products_price = '<s>' . $modified_price . ',00 &euro;</s><br><span class="prixPromo">PROMO = ' . $new_price . ',00 &euro;</span>'; } else { $products_price = $modified_price . ',00 &euro;'; } echo $products_price; ?>
Et enfin un bout de mon code PHP :

Code : Tout sélectionner

<label for="largeur">Largeur en Cm :</label> <?php echo tep_draw_input_field('products_text_attributes_' . $text_attributes['products_text_attributes_id'], '10', 'id="largeur" style="border:0; color:#f6931f; font-weight:bold;" onChange="getPrice('. $products_price .','. $products_id .')"', 'text'); ?> </p> <div id="slider-range-la"></div> <p> <label for="hauteur">Hauteur en Cm :</label> <input type="text" id="hauteur" style="border:0; color:#f6931f; font-weight:bold;"/> </p> </div> <?php } } } } ?> <div class="titreFiche"> <h2>Quantité :</h2> <?php for ($i=0; $i<10; $i++) { $qty_array[] = array('id' => $i+1, 'text' => $i+1); } ?> <p id="qteArticle"><?php echo tep_draw_pull_down_menu('quantity', $qty_array, 1,' id="quantite" onChange="getPrice('. $products_price .','. $products_id .')"'); ?></p> </div> <div class="titreFiche"> <h2>Notre prix :</h2> <p id="prixArticle" class="prixArticle"></p> </div> <script> getPrice('<?php echo $products_price;?>','<?php echo $products_id;?>') </script>
Je pense que le problème vient du code javascript onChange="getPrice(........)"
Merci de vos réponses et de bien vouloir m'éclairer

Probleme de variable

par c0v3r » 14 juin 2011, 16:51

Bonjour,
je fais appelle à vos connaissances parce que je me retrouve face à un problème depuis une semaine.
Et à force de tripatouiller mes codes, je m'y paume !!!

Donc en gros, j'essaye d'actualiser un prix suivant un longueur qui elle même calcule un supplément le tout fait en jquery. jusque là, pas de problème.
Je choisi ma longueur et mon prix est actualisé correctement.
Par exemple :
Prix = 10
Supplément calculé = 5
Prix total = 15

Maintenant, si je choisis une quantité, mon prix "retombe" à son prix originale
Par exemple :
Prix = 10
Supplément calculé = 5
Prix total = 15
quantité = 2
Prix total recalculé = 10

Mon code perd la valeur de mon supplément lorsque la quantité est choisie.
Par contre si je choisi d'abord une quantité de 2, mon prix ainsi que mon supplément se calcule parfaitement.

Voici le code Javascript :

Code : Tout sélectionner

function getPrice(price,product_id,supplement) { var url = 'http://www.monsite.com/images/'; var qte = $('#quantite').val(); var uiLa = $('#largeur').val(); var uiHa = $('#hauteur').val(); xhr = getxmlHttpObj(); xhr.onreadystatechange=function() { if (xhr.readyState==4) { getImageSize(url+'tassetest.png', function(size) { //alert(size.w+'x'+size.h); $( "#slider-range-ha" ).slider({ range: "min", value: 0, min: 10, max: 300, slide: function( event, uiHa ) { $( "#hauteur" ).val( uiHa.value); $('#slider-range-la').slider('value', uiHa.value); // Déplacement proportionnel slider largeur }, stop: function( event, uiHa ) { var width = Math.round((uiHa.value*size.w*10)/size.h)/10; // Calcul de la largeur suivant infos image $( "#largeur" ).val(width); } }); $( "#slider-range-la" ).slider({ range: "min", value: 0, /* Renseigner la largeur originale en cm*/ min: 10, /* Renseigner la largeur originale en cm*/ max: 300, slide: function( event, uiLa ) { $( "#largeur" ).val( uiLa.value); $('#slider-range-ha').slider('value', uiLa.value); // Déplacement proportionnel slider hauteur }, stop: function( event, uiLa ) { var height = Math.round((uiLa.value*size.h*10)/size.w)/10; // Calcul de la hauteur suivant infos image $( "#hauteur" ).val(height); /**** CALCUL DU SUPPLEMENT ****/ supplement = Math.round(((uiLa.value*height)/10000)*220); getPrice(price,product_id,supplement); /**** FIN CALCUL DU SUPPLEMENT****/ }// Fin stop function });// Fin slider range la });//Fin getImageSize document.getElementById("prixArticle").innerHTML = 'Prix = ' + xhr.responseText; } else if (xhr.readyState < 4) { document.getElementById("prixArticle").innerHTML = 'Actualisation...'; } } xhr.open("GET","ajax_onchange_price_flash.php?price="+price+"&product_id="+product_id+"&supplement="+supplement+"&largeur="+uiLa+"&hauteur="+uiHa+"&quantite="+qte,true); xhr.send("supplement="+supplement); }


Voici mon code pour la requête :

Code : Tout sélectionner

<?php require('includes/application_top.php'); $product_id = $_GET['product_id']; $supplement = $_GET['supplement']; $uiLa = $_GET['largeur']; $uiHa = $_GET['hauteur']; $modified_price = $_GET['price']; $qte = $_GET['quantite']; //$modified_price = 0; $product_new_price_query = tep_db_query("select * from " .TABLE_PRODUCTS_ATTRIBUTES. " where products_id = '" . (int)$product_id . "'"); $product_new_price = tep_db_fetch_array($product_new_price_query); var $option = $supplement; $modified_price = round(($modified_price * 1.196) + $supplement) * $qte; //echo $modified_price; $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$product_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_info_ajx = tep_db_fetch_array($product_info_query); if ($new_price = tep_get_products_special_price($product_info_ajx['products_id'])) { $new_price = round(($new_price * 1.196) + $supplement) * $qte; $products_price = '<s>' . $modified_price . ',00 &euro;</s><br><span class="prixPromo">PROMO = ' . $new_price . ',00 &euro;</span>'; } else { $products_price = $modified_price . ',00 &euro;'; } echo $products_price; ?>
Et enfin un bout de mon code PHP :

Code : Tout sélectionner

<label for="largeur">Largeur en Cm :</label> <?php echo tep_draw_input_field('products_text_attributes_' . $text_attributes['products_text_attributes_id'], '10', 'id="largeur" style="border:0; color:#f6931f; font-weight:bold;" onChange="getPrice('. $products_price .','. $products_id .','.$option.')"', 'text'); ?> </p> <div id="slider-range-la"></div> <p> <label for="hauteur">Hauteur en Cm :</label> <input type="text" id="hauteur" style="border:0; color:#f6931f; font-weight:bold;"/> </p> </div> <?php } } } } ?> <div class="titreFiche"> <h2>Quantité :</h2> <?php for ($i=0; $i<10; $i++) { $qty_array[] = array('id' => $i+1, 'text' => $i+1); } ?> <p id="qteArticle"><?php echo tep_draw_pull_down_menu('quantity', $qty_array, 1,' id="quantite" onChange="getPrice('. $products_price .','. $products_id .','.$option.')"'); ?></p> </div> <div class="titreFiche"> <h2>Notre prix :</h2> <p id="prixArticle" class="prixArticle"></p> </div> <script> getPrice('<?php echo $products_price;?>','<?php echo $products_id;?>','<?php echo $option;?>') </script>
Merci de vos réponses et de bien vouloir m'éclairer