8

チェックボックスの選択した値を渡す方法がわかりません。どんな助けや提案も私にとって大きな助けになります。

今のところここに私のコードがあります私はチェックボックスの値を渡すことに固執しています

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
?>
4

6 に答える 6

22
于 2013-01-23T07:53:29.250 に答える
5

Use this function :

 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
  }

and your ajax call will look like this:

$.ajax({
    url: 'process.php',
    type: 'post',
    data: { checkboxValues() }, 
    success:function(data){         }
于 2013-01-23T07:55:48.533 に答える
3

You can use something like this before your ajax call:

var ids=[]; 
$('input[type=checkbox]:checked').each(function(){
    ids.push($(this).val());
});

But it is strongly recommended to wrap your checkboxes in some div, and represent it in your jquery selector. Because in current way you can select and send to server some other checkboxes on your page.

于 2013-01-23T08:02:26.000 に答える
3

Wrap your checkboxes in a <form> tag and name your checkboxes using PHP array notation:

<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>

The use jQuery.serialize():

 $(function () {
     $('.btnadd').click(function () {
         $.ajax({
             url: 'process.php',
             type: 'post',
             data: $("#form1").serialize(),
             success: function (data) {}
         });
     });
 });

On the server side, $_POST["item"] will be an array containing only the checked values.

于 2013-01-23T08:05:46.660 に答える
0

Get the checkbox list label text

<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

hope it's work for you

于 2014-01-02T10:08:57.110 に答える
0

Please try like this 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 action :

    // don't need array variable, but your using $_POST
if(!empty($_POST['chkimportsikep'])) {
            foreach($_POST['chkimportsikep'] as $table_name) {
             // do something 
            }
}
于 2016-08-09T04:18:43.727 に答える