首页 > 解决方案 > 从在线编辑表中具有相同名称的多个输入中获取此值

问题描述

我有这种情况。我创建了一个带有内联编辑的表(使用 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有什么解决方案吗?我希望有一个人可以帮助我。谢谢你。

标签: phpjqueryajax

解决方案


您将需要一些额外的处理和过滤以确保数据的安全性,但一个简单的解决方案是将字段名称更改为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);
           }
    }
?>

推荐阅读