使用 PHP/Javascript 在复选框中传递多个值

Passing multiple values in a checkbox using PHP/Javascript

本文关键字:复选框 PHP Javascript 使用      更新时间:2023-09-26

是否可以通过复选框提交传递多个值。我需要将valuedata-export传递给 php 中的插入语句吗?在PHP中可能吗?

示例 (HTML(:

<input type="checkbox" data-export="<?= $list1['export_charges']; ?>"  name="chk_export[exportinr]"  value="<?= $list1['export_charges_inr']; ?>">

在 PHP 中:

 $exportinr = $_POST['chk_export']['exportinr'];

这是一个解决方案

<input type='checkbox' value='.$list1['export_charges_inr'].' name="chk_export[]" />
<input type='checkbox' value='.$list1['export_charges'].' name="chk_export[]" />

用于获取值的 PHP 代码

$numb = count($chk_export);
for($i=0;$i<=($numb - 1);$i++){
    echo $chk_export[$i];
}

另一个解决方案是

<input type="checkbox" value="'.$list1['export_charges'].':'.$list1['export_charges_inr'].'" name="chk_export" />

在 php 中

$pieces = explode(":", $_POST['chk_export']);
echo $pieces[0];
echo $pieces[1];
我认为

使用当前代码,它只会传递一个值,

name="chk_export[exportinr]"

这样改变它

name="chk_export[exportinr][]"

name="chk_export[]"

你的输入标签应该是这样的

<input type="checkbox" data-export='.$list1['export_charges'].' name="chk_export[exportinr][]"  value='.$list1['export_charges_inr'].'>

现在要获取每个复选框的值,您必须使用 php for 循环

,如下所示:

$N = 计数($_POST['chk_export[exportinr][]'](;

for($i=0; $i < $N; $i++)
{
  echo($_POST['chk_export[exportinr][$i]']);
}

data-* 属性设计为由客户端代码处理。

如果要提交两个或多个值,可以使用其他解决方案,例如:

  1. 使用隐藏的输入字段来保存其他值。
  2. 使用您的值的自定义模式并发布它们,即

    <input type="checkbox" name="chk_export" value='.$list1['export_charges'].'-'.$list1['export_charges_inr'].'>
    

在 PHP 端接收 post 值并将其分解为 '-'

    $arr = explode("-", $_POST["chk_export"]);

使用如下分隔符:

<input value="value#data-export-value" name="somefield">

然后在 PHP 中:

list($value, $dataexport) = explode("#", $_POST["somefield"]);
// $value and $dataexport will hold the appropriate values

或者尝试使用库,例如jQuery:

$("#formName").on('submit', function(evt) {
    evt.preventDefault();
    var fieldvalue = $("#somefield").val();
    var fielddata = $("#somefield").data('export');
    var data = {fieldvalue: fieldvalue, fielddata: fielddata};
    $.ajax({
        type: "POST",
        url: url,
        data: data
    });
});

在PHP中,你将可以访问fieldvalue和fielddata,如下所示:

$fieldvalue = $_POST["fieldvalue"]; 

如果您以前从未使用过jQuery,最好使用分隔符解决方案。