【问题标题】:How change PHP variable in a php scripts when an anchor tag is clicked on a different page?在不同页面上单击锚标记时如何更改 php 脚本中的 PHP 变量?
【发布时间】:2015-09-20 14:43:03
【问题描述】:

所以我想做一个即时搜索提要,显示我的 mysql 数据库中的成员列表,当用户单击与行关联的锚标记时 (li) 我想更改一个变量在另一个脚本中作为被点击的行的 id。我将在下面提供我的脚本

Index.php

<script>
function searchUserQ(){
    var searchTxt = $("input[name='userSearch']").val();
    console.log(searchTxt);

    $.post("includes/search.php", {searchVal:searchTxt},
        function(output){
           $("#userResults").html(output);
        });
}

$("#userResults").on("click", "a.employee", function(e) {
    e.preventDefault();
    $("#editId").val($(this).data("id"));
});
</script>

<h1 class="editUser">Edit User</h1>
<form action="index.php" method="post">
    <input type="text" name="userSearch" id="userSearch" placeholder="Search For Employee By First Name" onkeyup="searchUserQ();" />
    <submit type="submit" />
</form>
<div id="userResults">

</div>
<form class="editUser" action="includes/uploadEmployee.php" method="post"   enctype="multipart/form-data">
    <input type="hidden" name="editId" id="editId">
</form>

这个文件为我的索引页面创建了一个即时的搜索结果列表,并且是构建锚标签的地方我想要更改变量

包含/search.php

<?php


$output .= "<li><div class='employeeSearch' style=\"background: url('$photo'); width: 75px; height: 75px\"></div><h6>" . $firstName  . "</h6>" . " " .  "<h6>" . $lastName . "</h6><a href='#' class='employee' data-id='$id'>Select Employee</a></li>";

  echo $output;

这个文件是在一切完成后更新数据库,现在它只更新第 42 行

包括/uploadEmployee.php

 $selectedId = $_POST['editId'];

$sql = "UPDATE employees SET firstName = '$_POST[editUserFirstName]', lastName = '$_POST[editUserLastName]', password = '$_POST[editUserPW]', permission = '$permission', address = '$_POST[editUserAddress]', email = '$_POST[editUserEmail]', phone = '$_POST[editUserPhone]' WHERE id = $selectedId";

【问题讨论】:

    标签: php jquery mysql search dynamic


    【解决方案1】:

    添加

    <input type="hidden" name="editId" id="editId">
    

    到表格。当您单击锚点时,它应该将 ID 存储到此输入字段中。然后更新脚本可以使用$_POST['editId'] 来获取应该更新的行的ID。

    你的锚可以这样写:

    echo "<a href='#' class='employee' data-id='$id'>Select Employee</a>";
    

    您可以使用以下方法设置隐藏字段:

    $(document).ready(function() {
        $("#userResults").on("click", "a.employee", function(e) {
            e.preventDefault();
            $("#editId").val($(this).data("id"));
        });
    });
    

    【讨论】:

    • 感谢您的建议!!,除了在单击锚标记时在隐藏输入中设置值外,我一切正常。有什么建议吗?:)
    • 我已经更新了问题中的代码,使其更易于阅读。这就是我关于将隐藏输入的值设置为锚标记的 id 的内容:当我检查我的控制台时,data-id 工作正常,并且从 editId 输入获取值的 $_POST 工作正常。单击锚标记时,我在更改隐藏输入的值时遇到问题
    • 由于员工是动态加载的,所以需要使用事件委托。我已经更新了答案以表明这一点。
    • 刚刚将 jquery 更新为最近更新的内容,但我仍然遇到相同的问题,即它没有更改隐藏输入的值。如果我静态定义值然后使用 $_POST 它会起作用,但是当尝试动态更新值时我什么也得不到。这是错误消息,显示我现在在我的 sql 的 WHERE 部分中定义了 ID在您的 SQL 语法中;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法
    • 点击方法是否正在执行?
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多