这是我的html代码:
<form method="POST" action=/posts>
{{csrf_field()}}
<div class="form-row">
<div class="form-group col-md-3">
<label for="inputAddress">Attendence Type</label>
<?php $op="AttendenceZero" ?>
<input type="text" class="form-control" id="inputPassword4" name="<?php $op ?>" >
</div>
</div>
这是我的控制器,我必须接收值:
class Employeeleavecontroller extends Controller
{
//
public function new()
{
$name =$_POST['op'];
echo $name;
}
}
如果要接收 $_POST['op']
,则必须以表格中的 name="op"
。
<?php $op ?>
几乎什么都不做。但是,如果您添加回声:
name="<?php echo $op; ?>"
您可以接收:
$_POST['AttendenceZero']
更新:如果您仍然遇到问题,则应检查您实际收到的内容:
<pre>
<?php var_dump($_POST); ?>
</pre>
最后,我看不出您使用该名称的变量的原因。如果您打算使其动态化,则无论如何,您都必须将动态名称发送到最终脚本,除非您以:
来处理收到的数据。foreach ($_POST as $postName => $postValue) {
echo "Name: $postName ; Value: $postValue<br />";
}
更新2:
如果您真的希望用户定义您的POST值的name
,则还需要将名称定义发送到最终脚本。您可以将隐藏的输入字段用于此任务,因此将其添加到您的表单中:
<input type="hidden" name="fieldName" value="<?php echo $op;?>">
,然后在您的最终脚本中,您首先收到fieldname:
$fieldName = $_POST['fieldName'] //$op == "AttendenceZero" or whatever
并使用它接收实际数据:
$actualData = $_POST[$fieldName];
但是,如果一旦构建表单,就未定义$op
,这一切都是毫无意义的。如果是这样,那么您必须使用例如jQuery发送$ OP值在发送表单时向隐藏的输入字段添加$ OP值。
听起来很有趣...就像 name 输入文本字段是用户定义的(Dynamic(。
有两种处理方法。
1(使用隐藏字段。(推荐(
2(通过转换为索引数组。
使用隐藏字段。
<form method="POST" action=/posts>
{{csrf_field()}}
<div class="form-row">
<div class="form-group col-md-3">
<label for="inputAddress">Attendence Type</label>
<?php $op="AttendenceZero" ?>
<input type="text" class="form-control" id="inputPassword4" name="<?php $op; ?>" >
<input type="hidden" name="op" value="<?php $op; ?>">
</div>
</div>
处理隐藏字段。
class Employeeleavecontroller extends Controller
{
//
public function new()
{
$name = $_POST[$_POST['op']];
echo $name;
}
}
通过转换为索引数组
<form method="POST" action=/posts>
{{csrf_field()}}
<div class="form-row">
<div class="form-group col-md-3">
<label for="inputAddress">Attendence Type</label>
<?php $op="AttendenceZero" ?>
<input type="text" class="form-control" id="inputPassword4" name="<?php $op; ?>" >
</div>
</div>
通过转换为索引数组来处理表单请求。
class Employeeleavecontroller extends Controller
{
//
public function new()
{
$req = array_values($_POST);
$name = $req[0]; //contain all form data so, find correct index number.
echo $name;
}
}
我想你想做这样的事情:
更改此行,
<input type="text" class="form-control" id="inputPassword4" name="<?php $op ?>" >
to
<input type="text" class="form-control" id="inputPassword4" name="any_name" value="<?php echo $op ?>" >
和您的控制器
$name = $_POST['any_name']; echo $name;
so
$名称将返回AdathenceZero或任何用户定义的值。
您需要进行两个更改
1: "<?php echo $op; ?>"
在控制器中
2: $name =$_POST['AttendenceZero'];
最后它的工作