我很接近但錯過了一些東西。我試圖通過jQuery將多個複選框的變量傳遞給一個php頁面。我的代碼:無法使用jQuery AJAX創建複選框數組PHP
<div id="students">
<div class="field">
<label>
<input type="checkbox" name="pupil[a]" value="a" id="pupil"/>
Pupil A
</label>
</div>
<div class="field">
<label>
<input type="checkbox" name="pupil[b]" value="b" id="pupil"/>
Pupil B
</label>
</div>
<div class="field">
<label>
<input type="checkbox" name="pupil[c]" value="c" id="pupil"/>
Pupil C
</label>
</div>
</div>
<br /><br />
<div id="occupation">
<div class="field">
<label>
<input type="checkbox" name="occupation[Software]" value="Software" id="occupation"/>
Software
</label>
</div>
<div class="field">
<label>
<input type="checkbox" name="occupation[Marketing]" value="Marketing" id="occupation"/>
Marketing
</label>
</div>
<div class="field">
<label>
<input type="checkbox" name="occupation[Teacher]" value="Teacher" id="occupation"/>
Teacher
</label>
</div>
</div>
我的jQuery:
$(document).ready(function(){
$(":checkbox").on('change', function() {
var val = [];
var myval = []; //defining to pass with AJAX
var theval =[]; //defining to pass with AJAX
$(':checkbox:checked').each(function(i){
myval[i] = $(this).attr('id');
theval[i] = $(this).attr('name');
var newval = myval[i] +"="+ myval[i];
$.ajax({
type: "POST",
url: 'draftdata.php',
data : { newval}, //tried this and
data : {myval : theval}, // and tried this too
success: function(data){
$("#result").html(data);
}
});
});
});
});
我只是想傳遞是在複選框PHP檢查數據。可能有多組複選框,因此無法定義$_POST['desiredValue']
。所以我只能檢查它是否由if(isset($_POST['desiredValue']))
設置。
當我檢查軟件,市場營銷和教師和draftdata.php做一個print_r($_POST[])
,我得到:
Array
(
[myval] => Array
(
[0] => Software
[1] => Marketing
[2] => Teacher
)
)
我想的是:
Array
(
[0] => 'occupation' = 'Software'
[1] => 'occupation' = 'Marketing'
[2] => 'occupation' = 'Teacher'
)
我缺少什麼?
謝謝。
爲什麼你有相同'id'多個元素? – gcampbell
我想將var id傳遞給php'$(this).attr('id')',並將該複選框的值作爲該id'(theval)'的值傳遞。它只是在AJAX調用中的'data {}'導致我認爲錯誤。 – Somename
在HTML中,您不能在具有相同ID的文檔中擁有多個元素。 – gcampbell