הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה קטנה עם עגלת קניות בסיסית (jQuery) (https://hosts.co.il/forums/showthread.php?t=98946)

mayden 29-07-12 13:51

עזרה קטנה עם עגלת קניות בסיסית (jQuery)
 
היי חבר'ה,
צריך עזרה קטנה ב- jQuery עם עגלת קניות ממש בסיסית.

כעיקרון יש לי את זה:
http://i48.tinypic.com/287ps7n.png

עשיתי פונקציית עדכון לסה"כ הבסיסי (Sum):

HTML קוד:

var arr = new Array();
 function changePrice(divId, sId, price) {
  var x = $("#" + sId).val();
  var a = x * price;
  $("#" + divId).text(a + " ₪");
  arr.push(a);
 }

ה- HTML:
HTML קוד:

  <form>
    <select id="selectQuan-2" onChange="changePrice('sum-2','selectQuan-2','678');">
    <option value="0">0</option>
    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    </select>
 
  </form>

עכשיו יש רעיונות לעדכן את TotalSum ללא שום כפתור?

כעיקרון הצלחתי בעזרת כפתור אבל אני צריך אוטומטית.. (בעזרת כפתור - הכנסתי את כל הערכים למערך ושלפתי בעת הלחיצה על הכפתור).


תודה רבה..

perfeito 29-07-12 13:58

קוד:


function changePrice(divId, sId, price) {
  var x = $("#" + sId).val();
  var a = x * price;
  $('#total').trigger('update', a);
  $("#" + divId).text(a + " ₪");
 }

 $('#total').bind('update', function (e, price) {
  var curr = $(this).text();
  $(this).text(parseInt(curr) + parseInt(price));
 });

זה אמור לעבוד, ואם זה לא אז נתתי לך רעיון איך זה אמור לעבוד.

mayden 29-07-12 16:24

הבנתי הראש של הפעלת ה trigger אך עדיין.. משהו פה לא עובד..

perfeito 29-07-12 16:30

תשנה את
#total
לטאג שאתה רוצה לעדכן בה
ונסה שוב.

perfeito 29-07-12 16:31

אתה יכול גם לשנות את המחיר הכולל בתוך `changePrice()`

mayden 29-07-12 16:52

ציטוט:

נכתב במקור על ידי perfeito (פרסם 852753)
תשנה את
#total
לטאג שאתה רוצה לעדכן בה
ונסה שוב.

אני מבין דבר או שתיים בתכנות, שיניתי וזה עדיין לא עבד..

ציטוט:

נכתב במקור על ידי perfeito (פרסם 852754)
אתה יכול גם לשנות את המחיר הכולל בתוך `changePrice()`

חשבתי על זה - לדעתי צריך לשמור את הערכים במערך (Sum) ולחבר אותם. הצלחתי זאת בעת לחיצה על כפתור.

בכל מקרה - צריך גם לחשוב שזה לא תמיד יהיו 2... יכול להיות גם 3.. אז זה אמור לבוא בתור פונקציה/משהו דינאמי.

תודה על העזרה!

Haimz 29-07-12 19:18

ציטוט:

נכתב במקור על ידי mayden (פרסם 852761)
אני מבין דבר או שתיים בתכנות, שיניתי וזה עדיין לא עבד..



חשבתי על זה - לדעתי צריך לשמור את הערכים במערך (Sum) ולחבר אותם. הצלחתי זאת בעת לחיצה על כפתור.

בכל מקרה - צריך גם לחשוב שזה לא תמיד יהיו 2... יכול להיות גם 3.. אז זה אמור לבוא בתור פונקציה/משהו דינאמי.

תודה על העזרה!

מתי להריץ את הפונקצייה? תריץ אותה כל פעם שמשהו משתנה בסל קניות.

מה יהיה הפונקצייה?

לכל מוצר (שורה) יש מחיר, תכניס את המחיר לתוך span עם class שהוא itemPrice

ואז בjquery אתה עושה:

קוד:

var price = 0;
                       
$(".itemPrice").each(function() {
        price += parseInt($(this).val());
});

והמחיר שלך נשמר במשתנה price ..

mayden 29-07-12 23:05

ציטוט:

נכתב במקור על ידי HHaim (פרסם 852789)
מתי להריץ את הפונקצייה? תריץ אותה כל פעם שמשהו משתנה בסל קניות.

מה יהיה הפונקצייה?

לכל מוצר (שורה) יש מחיר, תכניס את המחיר לתוך span עם class שהוא itemPrice

ואז בjquery אתה עושה:

קוד:

var price = 0;
 
$(".itemPrice").each(function() {
    price += parseInt($(this).val());
});

והמחיר שלך נשמר במשתנה price ..

ניסיתי.. מחזיר NaN:

PHP קוד:

function changePrice(divIdsIdprice) {
      var 
= $("#" sId).val();
      var 
price;
       var 
= $("#" divId).text(" ₪");
      

  var 
totalPrice 0;
  $(
".product-sum").each(function() {
   
totalPrice += parseInt($(this).val());
 
   $(
"#totalSum").text(totalPrice);
      });
      
     


סה"כ המחיר פר מוצר שמור לי בCLASS של product-sum.

בסכום הכללי מחזיר לי NaN. (ה- DIV: #sumTotal)

Haimz 30-07-12 12:54

ציטוט:

נכתב במקור על ידי mayden (פרסם 852818)
ניסיתי.. מחזיר NaN:

PHP קוד:

function changePrice(divIdsIdprice) {
      var 
= $("#" sId).val();
      var 
price;
       var 
= $("#" divId).text(" ₪");
      

  var 
totalPrice 0;
  $(
".product-sum").each(function() {
   
totalPrice += parseInt($(this).val());
 
   $(
"#totalSum").text(totalPrice);
      });
      
     


סה"כ המחיר פר מוצר שמור לי בCLASS של product-sum.

בסכום הכללי מחזיר לי NaN. (ה- DIV: #sumTotal)

דבר ראשון תוציא את ה $("#totalSum").text(totalPrice); מתוך הeach
ותעלה דמו לאתר או משהו שיהיה קל יותר לעזור לך..

עריכה:
התבלבלתי עם משהו אחר, במקום
קוד:

$(this).val()
תעשה
קוד:

$(this).text()

mayden 31-07-12 11:05

הסתדרתי,
תודה רבה.

היה צריך לעבוד עם משתנה מסוג DATA.


כל הזמנים הם GMT +2. הזמן כעת הוא 17:04.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ