php - 带有 PHP 变量和准备好的 sql 的输入字段不可编辑

标签 php html mysql

我有许多 HTML 输入,这些输入由准备好的 sql 语句填充。 sql 结果插入到 input 的值属性中。我的问题是:当我编辑输入字段的文本时(在浏览器中,就像每个用户都会做的那样),输入字段中的文本会发生变化,但是当我通过 $_POST["id of the inputfield"] 读取此输入的值时我得到了准备好的sql的值。

例如

  1. SQL 输出 TextFromSQL进入 ID 为 Input 的输入字段
  2. 用户将输入字段文本更改为 TextFromMe
  3. PHP 获取 $_POST["Input"]字符串TextFromSQL

我发现(通过 Google Chrome -> Console -> Elements)输入的值属性没有改变,但用户可以看到的文本发生了变化。

代码(groups/group_edit.php)

这是用户可以选择他想要编辑的组的第一页。

echo'
<div class="modul_padding_scroll">
    <script>
        $(".submit_edit_group_1").click(function() {
            var $this = $(this);
            $.post("groups/group_edit2.php", 
                {
                    group_id: $this.attr("group_id")
                },
                function(data) {
                    $(".ajax_response").html(data);
                }
            );
        });
    </script>
    <span class="modul_span_title">Edit a group</span><br><br>
    <div class="ajax_response2"></div>
    <div class="ajax_response"></div>
        <table class="table_standard">
            <tr>
                <th class="th_titlebar" colspan="4">All groups</th>
            </tr>
            <tr>
                <th class="th_subtitle" style="width:5%;">ID</th>
                <th class="th_subtitle" style="width:20%;">Group</th>
                <th class="th_subtitle">Description</th>
                <th class="th_subtitle" style="width:10%;">Edit</th>
            </tr>';
        $ergebnis = mysqli_query($db, "SELECT group_id, group_name, group_desc FROM groups ORDER BY group_id");
        while ($row = mysqli_fetch_object($ergebnis)) {
            echo'
            <tr>
                <td class="td_contentbar">'.$row->group_id.'</td>
                <td class="td_contentbar">'.$row->group_name.'</td>
                <td class="td_contentbar">'.$row->group_desc.'</td>
                <td class="td_contentbar">
                    <button class="inputbutton submit_edit_group_1" group_id="'.$row->group_id.'">Edit</button>
                </td>
            </tr>
            ';
        }
echo'   </table>
    </div>';

代码(groups/edit_group2.php)

在此文件中,用户获取他在第一个文件中选择的组的名称和描述。这些值进入输入字段,他可以在其中编辑这些值。

$input_group_id = $_POST["group_id"];

$sql = $db->prepare("SELECT group_id, group_name, group_desc FROM groups WHERE group_id = ?"); 
$sql->bind_param('i', $input_group_id);
if ($sql->execute()) { 
    $sql->store_result(); 
    $sql->bind_result($group_id, $group_name, $group_desc); 
    $sql->fetch();

echo'
<script>
    $(".submit_edit").click(function() {
        $.post("groups/group_edit3.php", 
            {
                group_id: $("#group_id").val(),
                group_name: $("#group_name").val(),
                group_desc: $("#group_desc").val()
            },
            function(data) {
                $(".ajax_response2").html(data);
            }
        );
    });
</script>
<input type="text" maxlength="50" disabled value="'.$group_id.'">
<input type="hidden" maxlength="50" id="group_id" value="'.$group_id.'">
<input type="text" maxlength="50" id="group_name" value="'.$group_name.'" required></td>
<input type="text" maxlength="50" id="group_desc" value="'.$group_desc.'" required></td>
<input class="submit_edit" type="submit" value="Edit Group"></td>
';
}

第二个 PHP 文件的代码 (groups/edit_group3)

$input_group_id = $_POST["group_id"];
$input_group_name = $_POST["group_name"];
$input_group_desc = $_POST["group_desc"];

echo $input_group_id.'<br>';
echo $input_group_name.'<br>';
echo $input_group_desc.'<br>';
exit;

更新1

我替换了<input type="submit"...现在有 <button class="inputbutton submit_edit">Edit group</button>

更新2

我添加了第一页的代码(edit_group.php)

更新3

我认为问题出在group_edit.php之间和 group_edit2.php因为如果我只取group_edit2.php并操纵它起作用的后变量。

最佳答案

HTML 表单:喜欢有 name 字段。你的没有

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

PHP 文件包含:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

请注意,它使用与提交一起提供的输入字段的名称

关于php - 带有 PHP 变量和准备好的 sql 的输入字段不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614553/

相关文章:

JavaScript:document.createNode 还是纯 html?

javascript - Wordpress update_user_meta onclick 使用 Ajax

PHP DOM textContent 与 nodeValue?

php - 如何删除浏览器缓存?

mysql - 通过比较 SQL 中的 2 行进行过滤

PHP,yii 框架在更新/插入时出现错误,select 工作正常

mysql - 优化分区 MySQL 表的磁盘使用情况

php - 使用 SELECT SUM() GROUP BY 时,如何才能获取各个值?

html - 内容 url 在 Firefox 中不起作用

css - 如何在图像顶部创建响应式文本?