チェックボックスの選択した値を渡す方法がわかりません。どんな助けや提案も私にとって大きな助けになるでしょう。
今のところここに私のコードがあります私はチェックボックスの値を渡すことに固執しています
index.php
<table>
<?php
foreach($response as $item){
echo '<tr><td><input type="checkbox" value="' .$item['id']. '"></td><td>' . $item['name'] . '</td></tr>';
}
?>
</table>
<button type="button" class="btnadd">AddSelected</button>
<script type="text/javascript">
$(function() {
$('.btnadd').click(function() {
$.ajax({
url: 'process.php',
type: 'post',
data: { }, // what should I put here to pass the value of checked checkboxes
success: function(data) {}
});
});
});
</script>
process.php
<?php
$array_ids = $_POST['ids']; // this will retrieve the id's
?>
これを試して。
HTMLコード
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.btnadd').click(function(){
var checkValues = $('input[name=checkboxlist]:checked').map(function()
{
return $(this).val();
}).get();
$.ajax({
url: 'loadmore.php',
type: 'post',
data: { ids: checkValues },
success:function(data){
}
});
});
});
</script>
<input type="checkbox" name="checkboxlist" value="1" checked="checked" />
<input type="checkbox" name="checkboxlist" value="2" checked="checked" />
<input type="checkbox" name="checkboxlist" value="4" />
<input type="checkbox" name="checkboxlist" value="5" checked="checked" />
<input type="checkbox" name="checkboxlist" value="6" />
loadmore.phpコード
<?php
print_r($_POST['ids']);
?>
loadmore.phpの出力
Array
(
[0] => 1
[1] => 2
[2] => 5
)
それでおしまい。
乾杯。
この関数を使用します:
function checkboxValues() {
var allVals = [];
$(':checkbox').each(function() {
allVals.Push($(this).val());
});
return allVals; // process the array as you wish in the function so it returns what you need serverside
}
そして、あなたのajax呼び出しは次のようになります:
$.ajax({
url: 'process.php',
type: 'post',
data: { checkboxValues() },
success:function(data){ }
Ajax呼び出しの前に、次のようなものを使用できます。
var ids=[];
$('input[type=checkbox]:checked').each(function(){
ids.Push($(this).val());
});
ただし、チェックボックスをいくつかのdivでラップし、jqueryセレクターで表すことを強くお勧めします。現在の方法では、ページ上の他のチェックボックスを選択してサーバーに送信できるためです。
チェックボックスを_<form>
_タグでラップし、PHP配列表記:
_<form id="form1">
<input type="checkbox" name="item[]" value="1">
<input type="checkbox" name="item[]" value="2">
<input type="checkbox" name="item[]" value="3">
</form>
_
使用 jQuery.serialize()
:
_ $(function () {
$('.btnadd').click(function () {
$.ajax({
url: 'process.php',
type: 'post',
data: $("#form1").serialize(),
success: function (data) {}
});
});
});
_
サーバー側では、_$_POST["item"]
_はチェックされた値のみを含む配列になります。
このhtmlのように試してください:
<td><?php echo "<input type='checkbox' name='chkimportsikep' class='form-control' value={$TABLE_NAME} checked>" ?></td>
ajax/jquery:
$(document).ready(function(){
//handle test button click
$("button#importSikep").click(function(){
var checkValues = $('input[name=chkimportsikep]:checked').map(function()
{
return $(this).val();
}).get();
alert(checkValues);
$('#loading-indicator-runsikep').show();
$.ajax({
type:"POST",
url:"runsikepimport.php", // your php page action
data:{ chkimportsikep: checkValues }, //
cache:false,
success: function(result){
$('#loading-indicator-runsikep').hide();
alert(result);
$('.modal.in').modal('hide');
$("#description-status-sikep").load(location.href + " #description-status-sikep");
//location.reload(true);
}
});
return false;
});
});
PHPアクション:
// don't need array variable, but your using $_POST
if(!empty($_POST['chkimportsikep'])) {
foreach($_POST['chkimportsikep'] as $table_name) {
// do something
}
}
チェックボックスリストのラベルテキストを取得する
<span>
<input type="checkbox" name="mycheckbox[id][]" value="0" />
<label for="mycheckboxid_0">Test0</label>
<input type="checkbox" name="mycheckbox[id][]" value="1" />
<label for="mycheckboxid_1">Test1</label>
</span>
var chkbox = document.getElementsByName('mycheckbox[id][]');
var vals = "";
for (var i=0, n=chkbox .length;i<n;i++) {
if (chkbox [i].checked)
{
var label = "mycheckboxid_"+i;
vals += " "+$('label[for="'+label+'"]').html();
}
}
alert(vals); // output test1 test2
それがあなたのために働くことを願っています