Php $\u请求提供空值,而窗体提交数组值

Php $\u请求提供空值,而窗体提交数组值,php,html,Php,Html,这是我的网址 db_control.php?workname=Test+message&worktype=1&workscore=10&multi%5B%5D=4&multi%5B%5D=24&frmsubmit= 这是我的php代码 if(isset($_REQUEST['frmsubmit'])) { echo $_REQUEST['workname']; echo '<br>'; echo $_REQUEST['work

这是我的网址

db_control.php?workname=Test+message&worktype=1&workscore=10&multi%5B%5D=4&multi%5B%5D=24&frmsubmit=
这是我的php代码

if(isset($_REQUEST['frmsubmit']))
{
    echo $_REQUEST['workname']; echo '<br>';
    echo $_REQUEST['workscore'];echo '<br>';
    foreach($_REQUEST['multi'] as $mlti => $n)
    {
        echo $n;echo '<br>';
    }
}
这些都来自一个表单帖子(表单方法是get)

我做错了什么?请用正确的方式引导我。提前谢谢

这是我的html代码

<form enctype="multipart/form-data" class="form-horizontal ng-pristine ng-valid" id="work_assignment" method="get" action="<?=BASE_URL?>db_control.php" role="form">
    <div class="box-body">
        <label class="col-sm-3 control-label" for="name">Work Name<font class="redFont">*</font></label>
        <div class="controls col-sm-6">
            <input class="form-control" id="workname" required="required" name="workname" value="" type="text">
        </div>

    </div>
            <div class="box-body">
    <div class="row" id="field_name">
        <label class="col-sm-3 control-label" for="name">Work Type<font class="redFont">*</font></label>
        <div class="controls col-sm-6">
            <select class="select2-container form-control select2Field" id="worktype" name="worktype" onchange="hidescore(this)">
                                <option value="1">KRA</option>
                                <option value="2">Regular Task</option>
                                <option value="3">SELF Task</option>
                            </select>
        </div>                  
    </div>
            <div class="box-body">              
    <div class="row" id="field_namews">
        <label id="hidsco" class="col-sm-3 control-label" for="name">Work Score</label>
            <div class="controls col-sm-6">
            <input class="form-control" id="workscore" name="workscore" value="" type="text">
            </div>

    </div>

    <div class="row" id="field_name">
        <label class="col-sm-3 control-label" for="name">Employee<font class="redFont">*</font></label>
        <div class="controls col-sm-6" style="height:130px">
                            <select name="multi[]" multiple="multiple" style="height:100%"><!--onchange="setmail(this)"-->
                <option value="1">SudarshanSeshadri (1000)</option>
                <option value="3">Sonal Nahata (1010)</option>
                <option value="4">SujishV (1002)</option>
                <option value="33">JohnbabuAmose (0001)</option>
                <option value="34">GeethaVijay (1086)</option>
                <option value="35">BabuAmose (2100000)</option>
                <option value="36">SudhakarJeevan (102)</option>                                                                    </select>
        </div>

    </div>

    <div class="control-group row">
            <div class="controls col-sm-9">
            <button type="submit" class="btn btn-primary pull-right" name="frmsubmit"><i class="fa fa-save"></i> Save</button>
            <button type="button" class="btn pull-right" style="margin-right:5px;" onclick="cancelsave()"><i class="fa fa-times-circle-o"></i> Cancel</button>
            </div>

    </div>

正确的方法是通过以下方式在一个参数
multi
中传递multi的所有值

使用:

而不是:

并通过如下方式访问“multi”的值:

if(isset($_REQUEST['frmsubmit']))
{
    echo $_REQUEST['workname']; echo '<br>';
    echo $_REQUEST['workscore'];echo '<br>';
    $multiParam = explode(",",$_REQUEST['multi']);
    foreach($multiParam as $mlti => $n)
    {
        echo $n;echo '<br>';
    }
}
if(isset($\u请求['frmsubmit']))
{
echo$_请求['workname'];echo'
'; echo$_请求['workscore'];echo'
'; $multiParam=explode(“,”,$_请求['multi']); foreach($mlti=>$n的多内存) { echo$n;echo'
'; } }

编辑:也可以阅读@EduardoFernandes的答案以了解更多信息。

显示生成此路径的HTML表单。我尝试过,它工作正常:“Test message 10 4 24”但为什么它对我不起作用?我知道,我知道,当无法复制错误时,很难找到解决方案。如果您点击此地址会发生什么(用括号替换%5B%5D)?:db_control.php?workname=Test+message&worktype=1&workscore=10&multi[]=4&multi[]=24&frmsubmit=感谢变量multi[]是从下拉多选选项。我怎么做…?那不对。他处理多个参数的方式比你的更完美更优雅。而且,如果其中一个多值包含逗号呢?砰!你得到了一个拆分的值。我为他面临的问题提供了另一种解决方案。你为什么不告诉我们“是的,它不起作用了?”阿马纳萨尼告诉你,我试过了,它起作用了。你可以从我对他的回答的评论中看到。
if(isset($_REQUEST['frmsubmit']))
{
    echo $_REQUEST['workname']; echo '<br>';
    echo $_REQUEST['workscore'];echo '<br>';
    $multiParam = explode(",",$_REQUEST['multi']);
    foreach($multiParam as $mlti => $n)
    {
        echo $n;echo '<br>';
    }
}