2013-01-08 88 views
0

好吧,挑戰相對較小,但它是一種嗡嗡作響的動作。 在$(「#list_total」+ table_number).text(「$」+ grand_total [table_number] .toFixed(2))中查看jQuery;獲得總數

我試過的是grand_total [table_number] + = sub_total;但我一直在收到NaN。

CSS

.guest_table 
    { 
    float:left; 
    position: relative; 
    margin-left: 30px; 
    width: 280px; 
    } 

    h1 
    { 
    text-align: center; 
    } 

    table 
    { 
    margin-left: auto; 
    margin-right: auto; 
    width: 425px; 
    } 

    table, tr 
    { 
    border: 5px solid black; 
    -moz-border-radius: 10px; 
    -webkit-border-radius: 10px; 
    border-radius: 10px; /* future proofing */ 
    -khtml-border-radius: 10px; /* for old Konqueror browsers */ 
    } 

    tr 
    { 
    height: 65px; 
    } 

    .submit 
    { 
    text-align: center; 
    } 

    .input 
    { 
    border: none; 
    background: #fff url(../images/rounded-corner.png) no-repeat left top; 
    background-size:185px 37px; 
    width: 160px; 
    padding: 10px; 
    } 

    .input:focus 
    { 
    background-color: #ffff33 ; 
    } 

    #submit_form 
    { 
    border: 50px; 
    padding: 10px; 
    margin-left: auto; 
    margin-right: auto; 
    } 

    .error 
    { 
    text-align: center; 
    color: red; 
    font-size: 20px; 
    margin-bottom: 20px; 
    background-color: yellow; 
    width: 25%; 
    margin-left: auto; 
    margin-right: auto; 
    } 

    .list_total 
    { 
    display: inline-block; 
    padding-left: 5px; 
    } 

    #option_list 
    { 
    width: 25%; 
    } 

    #already_paid 
    { 
    text-align: center; 
    } 

    input[type=submit]:hover,input[type=reset]:hover 
    { 
    background-color: #8F5B00; 
    color: white; 
    } 

    button, input[type=submit] 
    { 
    margin-left: 10px; 
    } 

    button:hover 
    { 
    background-color: #8F5B00; 
    color: white; 
    } 

笨查看

<?php echo validation_errors(); ?> 

<?php 
$total_guests = count($results); 
$attributes = array(
    'id' => 'submit_form' 
); 

echo form_open('main/form_validation/options'); 
?> 

<div id="center"> 
    <?php 
    foreach ($results as $result) { 
     ?> 
     <table class="guest_table" id="guest_<?php echo $result->id; ?>"> 
      <th> 
    <?php echo $result->full_name; ?>  
      </th> 
      <tr id="option_list"> 
       <td> 

        <?php 
        $b = $price2 > 0 ? " $" . $price2 : "N/A"; 

        $day = array(
         array(
          'name' => 'friday_performance_' . $result->id, 
          'id' => 'friday_performance' . $result->id, 
          'value' => 'friday_performance' 
         ), 
         array(
          'name' => 'friday_banquet_' . $result->id, 
          'id' => 'friday_banquet' . $result->id, 
          'value' => 'friday_banquet' 
         ), 
         array(
          'name' => 'saturday_' . $result->id, 
          'id' => 'saturday' . $result->id, 
          'value' => 'saturday' 
         ), 
        ); 


        $meal_pref = array(
         array(
          'name' => 'meal_' . $result->id, 
          'id' => 'chicken', 
          'value' => 'chicken' 
         ), 
         array(
          'name' => 'meal_' . $result->id, 
          'id' => 'fish', 
          'value' => 'fish' 
         ), 
         array(
          'name' => 'meal_' . $result->id, 
          'id' => 'vegetarian', 
          'value' => 'vegetarian' 
         ), 
        ); 


        echo form_checkbox($day[0]); 
        ?>&nbsp;&nbsp; 
        Friday Performance <?php echo " $" . $price1; ?><br> 

        <?php echo form_checkbox($day[1]); 
        ?>&nbsp;&nbsp;Friday Banquet <?php echo $b; ?><br> 
        <div class="meal_choice" id='meal_choice<?php echo $result->id; ? >'> 
         <?php 
         echo form_radio($meal_pref[0]); 
         ?>&nbsp;&nbsp;Chicken <br> 
         <?php echo form_radio($meal_pref[1]); 
         ?>&nbsp;&nbsp;Fish <br> 
         <?php echo form_radio($meal_pref[2]); 
         ?>&nbsp;&nbsp;Vegetarian<br> 

        </div> 
    <?php echo form_checkbox($day[2]); ?>&nbsp;&nbsp;Saturday Workshop w/lunch <?php echo " $" . $price3; ?><br> 
        <br><br> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        Total:<div class="list_total" id="list_total<?php echo $result->id; ?>"></div> 
       </td> 

     </table> 

<?php } ?> 
</div> 
<div class="submit"> 
    <?php 
    echo ("<input type='hidden' name='email' value=" . $this->session->userdata('email') . ">"); 

    $data = array(
     'name' => 'submit', 
     'id' => 'submit', 
     'value' => 'Complete Form', 
     'type' => 'submit' 
    ); 

    echo form_submit($data); 
    echo form_button('exit', 'Exit'); 
    ?> 

</div> 
<?php 
echo form_close(); 
?> 

jQuery的

<script> 
$(document).ready(function(){ 

    $(".list_total").text("$0.00"); 
    $(".meal_choice").hide(); 
    var total_attending = (<?php echo $total_guests; ?> + 1); 

    $("[name='exit']").click(function(){ 
     window.location.href='<?php echo base_url(); ?>/main/logout'; 
    }); 

    var table_number = 0; 
    $('.guest_table').click(function(){ 
     var table_id = $(this).attr('id'); 
     table_number = parseInt(table_id.charAt(table_id.length-1)); 
    }); 
    var grand_total=[]; 
    grand_total[table_number]=0.00; 

    $(':checkbox').change(function(){ 

     switch($(this).attr('id')) 
     { 
      case 'friday_performance' + table_number: 
       var sub_total= 0.00; 
       sub_total = parseInt(friday_performance()); 
       grand_total[table_number] += sub_total; 

       $("#list_total"+table_number).text("$"+ grand_total[table_number].toFixed(2)); 
       break; 

      case 'friday_banquet' + table_number: 
       var sub_total= 0.00; 
       sub_total = parseInt(friday_banquet()); 
       grand_total[table_number] += sub_total; 
       $("#list_total"+table_number).text("$"+ grand_total[table_number].toFixed(2)); 
       break; 
      case 'saturday' + table_number: 
       var sub_total= 0.00; 
       sub_total += parseInt(saturday()); 
       grand_total[table_number] = sub_total; 
       $("#list_total"+table_number).text("$"+ grand_total[table_number].toFixed(2)); 
       break; 

     } 
    }); 

    function friday_performance() 
    { 
     if ($("#friday_performance"+table_number).is(":checked")) 
     { 
      var price1 = <?php echo $price1; ?>; 
      return price1; 
     }else if ($("#friday_performance"+table_number).not(":checked")) 
     { 
      var price1 = 0; 
      return price1; 
     } 
    } 

    function friday_banquet() 
    { 
     if ($("#friday_banquet"+table_number).is(":checked")) 
     { 
      $("#meal_choice"+table_number).show("slow"); 
      var price2 = <?php echo $price2; ?>; 
      return price2; 
     }else if ($("#friday_banquet"+table_number).not(":checked")) 
     { 
      $("#meal_choice"+table_number).hide("slow"); 
      $('input:radio').prop("checked",false); 
      var price2 = 0; 
      return price2; 
     } 
    } 

    function saturday() 
    { 
     if ($("#saturday"+table_number).is(":checked")) 
     { 
      var price3 = <?php echo $price3; ?>; 
      return price3; 
     }else if ($("#saturday"+table_number).not(":checked")) 
     { 
      var price3 = 0; 
      return price3; 
     } 

    } 

    $("#submit").click(function(){ 
     alert("Got it!"); 
    }); 
}); 
</script> 
+0

你需要確保你使用的是帶有'+'應該是同一類型的變量。如果你正在嘗試添加整數,請確保使用'parseInt'方法,如果使用的是字符串,則使用'toFixed'。 – Amyth

回答

1

可以調試此電子郵件asily。

在瀏覽器中打開控制檯(F12)。

鍵入以下內容:

table_number 

sub_total 

grand_total[table_number] 

,將告訴你你需要什麼 - 一個是不是數字。如有必要,請在控制檯中編輯提及上述變量值的問題,我們將提供進一步幫助。

在瀏覽器中使用控制檯會很方便,可以幫助您開發客戶端Web應用程序。

+0

謝謝...我用螢火蟲檢查過...顯示table_number是一個數字(沒有引號周圍的數字)以及sub_total。 – Softwaretech

+0

對不起,以前的評論超時...反正...謝謝...我再次檢查與螢火蟲...顯示table_number是一個數字(沒有引號周圍的數字)以及sub_total。奇怪的是,當我鼠標懸停grand_total ...我越來越[0,NaN]甚至認爲grand_total [table_number] + = sub_total; <--- sub_total顯示一個值。 – Softwaretech

1

您已經初始化了grand_total變量,但是您還應該初始化grand_total[table_number],即在開始向其添加任何內容之前使用索引的值。

考慮修改下面幾行:

$(':checkbox').change(function(){ 

    switch($(this).attr('id')) 
    { 

這樣:

$(':checkbox').change(function(){ 

    if (typeof (grand_total[table_number]) === "undefined") { 
     grand_total[table_number] = 0; 
    } 

    switch($(this).attr('id')) 
    { 
+0

欣賞....絕不應該是未定義的。 – Softwaretech

+0

給我打電話啞......如果你還沒有......那就是訣竅!謝謝! – Softwaretech