php - 从在线编辑表中具有相同名称的多个输入中获取此值
问题描述
我有这种情况。我创建了一个带有内联编辑的表(使用 jQ),每一行都有它的编辑按钮。因此,例如,如果我想编辑第一行,我单击编辑按钮,它会打开他的输入字段。每个打开的编辑行都有其保存按钮,其 id 与行中该属性的 id 连接。现在,如何使用 php 获取该输入值?我不得不提到每个输入都具有相同的属性名称->它们都是动态创建的。
php
$new_tname = $_POST['edit_team']; ?????????????????????????????????
if (isset($_GET['save_tid'])) {
$tid = $_GET['save_tid'];
$team = Team::getById($tid);
if ($tid == $team->team_id) {
$team->name = $new_tname;
$team->save();
}
}
html/php
<?php
$teams = Team::getAll();
foreach ($teams as $team) {
$tname = $team->name;
$tid = $team->team_id;
echo "<tr>
<td>
<a href='#' class='editable' style='margin-left: 2px;'>".$tname."</a><form method='POST' action=''><input type='text' class='editshow form-control col-sm-3' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' name='edit_teams' value='".$tname."'></form><a href='teams.php?save_tid={$tid}' style='margin-left: 2px; margin-top:3px;' class='btn btn-success btn-sm editshow'>Save</a>
</td>";
echo "<td>
<button class='btn btn-primary btn-sm btnEdit'".$tid."'>Edit</button> | <a href='teams.php?delete_tid={$tid}' class='btn btn-danger btn-sm'>Delete</a>
</td>
</tr>";
}
var_dump($new_tname) throws me a NOTICE: Undefined variable: edit_team
我假设 php 找不到哪个 edit_team(因为它们是多个), isset($_POST['edit_team']) 不是解决方案,因为它给我 NULL,
这是用于内联编辑的 jQ
jQ
<script type="text/javascript">
$(".editshow").hide();
$(".btnEdit").click(function(){
let btnEdit = $(this),
containerEl = btnEdit.closest("tr");
containerEl.find(".editshow").toggle();
});
</script>
php有什么解决方案吗?我希望有一个人可以帮助我。谢谢你。
解决方案
您将需要一些额外的处理和过滤以确保数据的安全性,但一个简单的解决方案是将字段名称更改为edit_teams_{$tid}并在您的 php 循环中通过传递的表单字段:
<?php
foreach($_POST as $field_name => $field_value){
if(substr($field_name,"edit_teams") !== false){
$edit_teams = $field_value;
$team_id = str_replace("edit_teams_","",$field_name);
}
}
?>
推荐阅读
- javascript - 在进行函数调用之前如何设置状态?
- reactjs - 从异步方法分配变量
- javascript - 在 NestJs 中,如何根据其接口注入服务?
- for-loop - 如何使用“For-Loop”优化我的代码?
- sql-server - 从 NVARCHAR(MAX) 列获取 xml 值
- sql - 表的 SQL 操作(聚合和分组)
- arduino - Arduino自动移动汽车转弯90度问题
- java - 为什么在akka中有receiver.tell(msg,sender)而不是sender.tell(msg,receiver)?
- python - 使用多索引列填充数据框
- c++ - 使用 Qt 运行 Windows PowerShell 命令