【问题标题】:$_POST Array from html form来自 html 表单的 $_POST 数组
【发布时间】:2022-03-31 21:55:48
【问题描述】:

我正在尝试从多个复选框 (id[]) 发送数据并在 php 中创建一个数组“info”以允许我为每个值运行一个脚本(但是值的数量可能每次都会改变)但是首先我我试图显示每个数组值的内容。我不太确定如何放置我的数组填充行以将所有内容保存到数组中。

HTML

echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>");

目前我希望的处理代码是 -

$info=$_POST['id[]'];
Echo(array_values($info));

我需要做什么才能使表单复选框中的邮寄发送的内容填充数组信息

非常感谢任何帮助

为澄清而编辑。

【问题讨论】:

    标签: php


    【解决方案1】:

    改变

    $info=$_POST['id[]'];
    

    到

    $info=$_POST['id'];
    

    通过在表单字段名称的末尾添加[],PHP 会自动将这些变量转换为数组。

    【讨论】:

    • 谢谢,这可能是我最大的问题——我什至没有考虑过。
    【解决方案2】:

    你应该得到像 $_POST['id'] 这样的数组。所以你应该能够做到这一点:

    foreach ($_POST['id'] as $key => $value) {
        echo $value . "<br />";
    }
    

    输入名称应该相同:

    <input name='id[]' type='checkbox' value='1'>
    <input name='id[]' type='checkbox' value='2'>
    ...
    

    【讨论】:

    • 这是唯一真正有意义的答案
    【解决方案3】:

    在表单页面上,字段名称必须如下所示

    <input name="id[]" type="checkbox" value="x">
    <input name="id[]" type="checkbox" value="y">
    <input name="id[]" type="checkbox" value="z">
    

    在目标页面上,$_POST['id'] 是您的数组变量

    $id = implode(",", $_POST['id']);
    echo $id; //Should print "1,2,3"
    

    你不能直接回显一个数组,因为它只会打印出“数组”。如果您想打印出数组值,请使用print_r。

    print_r($_POST['id']);
    

    【讨论】:

    • 你使用了 id[] 这意味着你正在传递一个数组。如果您想传递多个复选框,则使用此选项。如果您只想通过一个复选框,只需使用 name="id"
    • 我通过可能 1 可能 500
    【解决方案4】:

    我不知道我是否理解你的问题,但也许:

    foreach ($_POST as $id=>$value)
        if (strncmp($id,'id[',3) $info[rtrim(ltrim($id,'id['),']')]=$_POST[$id];
    

    会有所帮助

    也就是说,如果您真的想在 html 表单的每个复选框上使用不同的名称(id[key])(效率不是很高)。如果不是,您可以将它们全部命名,即“id”并迭代数组的(选定)值,例如:foreach ($_POST['id'] as $key=&gt;$value)...

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 1970-01-01
      • 2020-04-17
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多