【问题标题】:PHP - pass hidden value into the jquery (part 2)PHP - 将隐藏值传递到 jquery(第 2 部分)
【发布时间】:2016-02-16 07:22:02
【问题描述】:

继续PHP - pass hidden value into the jquery

<html>
<head>
<link rel="stylesheet" href="js/jquery-ui-themes-1.11.1/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.11.1/jquery-ui.js"></script>
<script>
$(document).ready(function(){
    $(".buttonsPromptConfirmDeleteDepartment").click(function(){
        $("#dialogConfirmDeleteDepartmentBox").dialog({
            modal: true,
            resizable: false,
            width: 300,
            height: 150,
            dialogClass: "dialogConfirmDeleteDialogBox",
            position: { my: 'top', at: 'top+300' },
            open: function() {
                var message = 'Are you sure you want to delete this department?';
                $(this).html(message);
            },
            buttons:
            [
                {
                    text: "OK",
                    click: function()
                    {
                        var departmentID = $(this).next('input.departmentID').val();
                        alert(departmentID);  
                    },
                    style:"margin-right: 60px;" 
                },
                { 
                    text: "Cancel",
                    click: function () 
                    {
                        $(this).dialog("close");  
                    }, 
                    style:"margin-left: 0px;" 
                },
            ]
        });
    });
});
</script>
</head>

<body>
<?php
//db connection

$query = "SELECT * 
          FROM department 
          ORDER BY dept_ID ASC";
$result = mysqli_query($dbc, $query);
$total_department = mysqli_num_rows($result);

if($total_department > 0)
{
?>

<table width="600" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse">
  <tr>
    <td width="80" align="center">ID</td>
    <td width="300" align="center">Department</td>
    <td width="220" align="center">Action</td>
  </tr>   
<?php        
  while($row = mysqli_fetch_array($result))
  {
?>
    <tr>
      <td align="center"><?php echo $row['dept_ID']; ?></td>
      <td align="center"><?php echo $row['dept_name']; ?></td>
      <td>
        <button class="buttonsPromptConfirmDeleteDepartment">Delete</button>
        <div id="dialogConfirmDeleteDepartmentBox" title="Confirm"></div>
        <input type="hidden" class="departmentID" value="<?php echo $row['dept_ID']; ?>" />    
      </td>
    </tr>
  <?php
  }
  ?>
</table> 
<?php
}
?>

部门表

部门 ID 部门名称 1 个帐户 2 金融 3 营销

这次我在我的代码中添加了一个对话框。
假设我的部门表只有 3 条记录。
我的要求如下:
- 单击第一个删除按钮,显示对话框,单击确定,显示部门 ID = 1
- 单击第二个删除按钮,显示对话框,单击确定,显示部门 ID = 2
- 点击第三个删除按钮,显示对话框,点击确定,显示部门ID = 3

但是,无论我点击什么按钮,我都会得到未定义的值。

有人可以帮我吗?

【问题讨论】:

  • 将 id 添加到隐藏字段,例如 " " 然后使用 jquery 获取其值,例如 "var val = $("#department").val();"

标签: javascript php jquery html mysql


【解决方案1】:

$(this)

var departmentID = $(this).next('input.departmentID').val();

不引用您的 DOM 对象,而是引用当前对话框。

首先创建一个对您的 DOM 对象的引用,然后您可以稍后使用它:

$(document).ready(function(){
    $(".buttonsPromptConfirmDeleteDepartment").click(function(){

        var $box = $(this);

        ...
        ...

            click: function()
            {
                var departmentID = $box.parent().find('input.departmentID').val();
                alert(departmentID);  
            }

        ...
        ...

    });
});

【讨论】:

    【解决方案2】:

    您可以通过类名departmentID 选择输入,使用:

    $(this).closest('td').find('.departmentID').val();
    

    而不是:

    $(this).next('input.departmentID').val();
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多