2014-04-10 198 views
0

想知道如何得到一個複選框的值是否被選中,然後我希望它被存儲在一個PHP會話中,如果可能的話。jQuery,Ajax請求,PHP

不知道這可以做到。因此,這裏的問題!

這是我的代碼中的一小部分/重要部分。

 <div class="accessories-right"> 
     <h3><?php echo $row['title'] ;?></h3> 
     <p><?php echo $row['description']; ?></p> 
     <div style="width: 700px; float: left; min-height: 20px;"> 
      <div id="ck-button"> 
       <label> 
        <input type="checkbox" value="1" style="visibility: hidden;" name="checked" class="box" id="box"><span>SELECT</span> 
       </label> 
      </div> 
      <div class="accessories-text"><?php echo $row['price']; ?></div> 
     </div> 
    </div> 
     <div style="margin: 20px 0px 40px 0px; padding:0; clear: both;"></div> 


    <div style="float: left; margin: 3px 0px 0px 760px;"> 
     <button class="green-btn" id="more">Continue &raquo;</button> 
    </div> 

按鈕有一個ID,我已經試過類似聲明如下:但我需要的是在同一頁並存儲在以後使用會話。

$(".success").hide(); 
     $(".error").hide(); 

     $("#more").click(function() { 
      var checked = $("#box").val(); 
      var dataString = 'checked='+ checked; 

      if(checked == '') 
      { 
       $(".success").hide(); 
       $(".error").show(); 
      } 
      else 
      { 
       $.ajax({ 
        type: "POST", 
        url: "accessories_post.php", 
        data: checked, 
        success: function() { 
         $(".success").show(); 
         $(".error").hide(); 
        } 
       }); 
      } 
      return false; 
     }); 

但是,這並不是我真正想做的事情。


對不起,我還忘了補充一點,我想喜歡選擇多個項目,然後將它們添加到郵件()函數來發送電子郵件此信息關閉到客戶端。

enter image description here

所以我想選擇或者這些物品,然後把它通過電子郵件發送給客戶端

+0

如果複選框被選中,您可以發送一個Ajax請求,Ajax調用將調用PHP文件,它將爲您設置會話值。 –

回答

0

你應該調整你的ajax()電話如下:

$.ajax({ 
    type: "POST", 
    url: "accessories_post.php", 
    data: {checked: checked}, // Take note of this line. 
    success: function() { 
     $(".success").show(); 
     $(".error").hide(); 
    } 
}); 

這將參數data更改爲一個對象,其對象的屬性將爲truefalse(變量的值。這樣做的原因是因爲如果您只將data設置爲truefalse,則沒有效果。數據需要作爲一組鍵/值對發送。

在PHP端,你可以評估該複選框是否被使用此代碼檢查:

$isChecked = (isset($_POST["checked"])) ? (bool)$_POST["checked"] : false; 
+0

好吧,這很酷,讓我更好地理解,我想,讓我做一些弄亂它,我會稍後更新。 –

0
Try This.... 
    $(".success").hide(); 
    $(".error").hide(); 

    $("#more").click(function() { 
     var checked=''; 
     if($('#box').is(':checked')){ 
      checked=$('#box').val(); 
     } 
     var dataString = 'checked='+ checked; 

     if(checked == '') 
     { 
      $(".success").hide(); 
      $(".error").show(); 
     } 
     else 
     { 
      $.ajax({ 
       type: "POST", 
       url: "accessories_post.php", 
       data: checked, 
       success: function() { 
        $(".success").show(); 
        $(".error").hide(); 
       } 
      }); 
     } 
     return false; 
    }); 

    And in your accessories_post.php set this posted value to session like this 

    $_SESSION['anyname']=$_POST['checked'] 
+0

好的歡呼聲會做 –