2013-05-12 80 views
2

我無法獲得輸入checkbox_material的權限。我的代碼有問題。請幫幫我。我的textarea work fint,但checkbox_material從未開始設置。請幫我弄清楚問題所在。jQuery,Ajax,PHP兩個複選框

我的表格:

<div class="form_style"> 
<div id="checkbox_content"></div> 
    <input type="checkbox" value="1" alt="Checkbox" name="checkbox_material[]">One 
    <input type="checkbox" value="2" alt="Checkbox" name="checkbox_material[]">Two<br> 
    <textarea id="materialMessage" rows="5" cols="45" name="material_message"></textarea<br> 
    <button id="materialSubmit">Add record</button> 
</div> 

的Javascript:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#materialSubmit").click(function (e) { 
     e.preventDefault(); 
     if($("#materialMessage").val() === "") { 
      alert("Please enter some text!"); 
      return false; 
     } 


    var query_string = ''; 
    $("input[@type='checkbox'][@name='checkbox_material']").each(function() { 
     if (this.checked) { 
      query_string += "&checkbox_material[]=" + this.value; 
     } 
    }); 

    if(query_string.length == 0) { 
     alert("Please enter some HELLO!"); 
     return false; 
    } 

    alert("Hej"); 
    $.ajax({ 
     type: "POST", 
     url: "material.php", 
     data: "id=1" + query_string, 
     success:function(t) { 
      $("div#checkbox_content").empty().append(t); 
     }, 
     error:function() { 
      $("div#checkbox_content").append("An error occured during processing"); 
     } 
    }); 




    var myData = "material_message="+ $("#materialMessage").val(); 
    jQuery.ajax({ 
     type: "POST",   
     url: "material.php", 
     dataType:"text",  
     data:myData,   
     success:function(response) { 
     $("#materialResponds").append(response); 
     $("#materialMessage").val(''); 
     }, 
     error:function (xhr, ajaxOptions, thrownError) { 
     alert(thrownError); //throw any errors 
     } 
    }); 
    }); 

PHP:

if (isset($_POST['checkbox_material'])) 
{ 
    print_r($_POST['checkbox_material']); 
} 
+1

您使用的是什麼版本的jQuery? '@ attr'選擇器在1.2中被棄用,在1.3中被刪除。 – Barmar 2013-05-12 19:22:43

+1

你有沒有試過把數字放在複選框的名字中?像name =「checkbox_material [0]」name =「checkbox_material [1]」等等? – chepe263 2013-05-12 19:23:03

回答

1

的括號內是個的一部分e名稱:

var query_string = ''; 
$("input[name='checkbox_material[]']").each(function() { 
    if (this.checked) { 
     query_string += "&checkbox_material[]=" + this.value; 
    } 
});