如何获取隐藏字段的ID并将其传递给我的查询?

如何获取隐藏字段的ID并将其传递给我的查询?

问题描述:

这是我的脚本。我想在我的页面中的隐藏字段的id,并把它传递给fetch.php如何获取隐藏字段的ID并将其传递给我的查询?

$(document).on('click', '.edit_data', function(){ 
    var employee_id = $(this).attr("id"); 
    $.ajax({ 
     url: "fetch.php", 
     method: "post", 
     data: { employee_id: employee_id }, 
     dataType: "json", 
     success: function(data) { 
      $('#name').val(data.lname); 
      $('#overtime').val(data.OT); 
      $('#OT_date').val(data.outw); 
      $('#employee_id').val(data.id); 
      $('#overtimeModal').modal('show'); 
     } 
    }); 
}); // end of edit data function 
while($row = mysqli_fetch_array($result)) 
{ 
    echo '<tr> 
      <td><center>'.$row['lname'].'</td> 
      <td><center>'.$row['outs'].'</td> 
      <td><center>'.$row['outw'].'</td> 
      <td><center>'.$row['OT'].' HR/HRS</td> 
      <td><center><input type="hidden" name="OT_date" id="'.$row['OW'].'" /></td> 
      <td><center><input type="button" name="btnedit" value="APPROVE" id="'.$row["id"].'" class="searchbutton btn-primary view_data"></center></td> 
      <td><center><input type="button" name="btnapprove" value="editortest" id="'.$row["id"].'" class="searchbutton btn-primary edit_data"></center></td> 
     </tr>'; 
} 

这里是OTDATE隐藏字段,我想它的ID。请帮帮我。谢谢

+0

是该次点击也工作或没有?你是警戒还是控制员工的ID? –

+0

为什么不使用'input'的'value'属性? – Peter

+0

感谢您的帮助大师!该按钮正在工作我试过了..但问题是我传递给我的fetch.php的变量..我有一个查询那里获取结果,其中employee_id等于从jscript传递的员工ID ..但如果我只使用员工ID查询会给我错误的结果..所以我需要得到的日期也使用它在我的查询.. – arima

您可以像这样获取它,因为您只有一个指定的隐藏输入。

var hiddenId = $("input[type='hidden']").attr('id'); 

否则,您可以通过“特殊”的名字取隐藏的输入字段,

var hiddenId = $("input[name='input_field_name']").attr('id'); 

在你的情况下,隐藏输入的名称是“OT_date”所以你应该找到像这样,我们不'不知道给id赋予id的id是什么,因为它是从=> id =“'。$ row [”id“]。'”中获取的,因此下面的解决方案应该足够了。

var hiddenId = $("input[name='OT_date']").attr('id'); 

遍历每一行并在该行中找到隐藏的元素。

$('tr').each(function() { 
    var hiddenId = $(this).find("input[name='OT_date']").attr('id'); 
}); 
+0

谢谢先生的帮助..我应该使用名称attrib?并把$行['']?到它? – arima

+0

@arima我已经更新了我的答案以获得更多的说明。如果解决您的问题,请Upvote。 – ScanQR

+0

它只获得第一个值先生..非常感谢帮助我先生.. – arima

为了解决这个问题,你可以从点击.edit_data按钮遍历DOM并找到相同tr距离最近的:hidden元素。然后您可以存储对该元素本身的引用。这否定了需要知道现场的id

$(document).on('click', '.edit_data', function(){ 
    var employee_id = this.id; 
    var $otdate = $(this).closest('tr').find(':hidden'); 

    $.ajax({ 
     url: "fetch.php", 
     method: "post", 
     data: { employee_id: employee_id }, 
     dataType: "json", 
     success: function(data) { 
      $('#name').val(data.lname); 
      $('#overtime').val(data.OT); 
      $otdate.val(data.outw); // use the element here 
      $('#employee_id').val(data.id); 
      $('#overtimeModal').modal('show'); 
     } 
    }); 
}); 

注意,您可以使用您想了解隐藏的输入任何选择,我只是在本例中为简单起见,使用:hidden

+0

谢谢先生的回应..我如何检查,如果我得到正确的$ otdate? 它没有显示,当我把它放在成功:function() – arima

+0

你可以检查'$ otdate.length',看看是否找到元素(它应该返回1) –

+0

另外,你检查了AJAX函数正在成功完成? –

通过使用

jQuery("[attribute='value']") 

您的问题

var hiddenId = $("input[name='OT_date']").attr('id'); 
+0

谢谢先生..我如何检查这个脚本返回的值? – arima

+0

你可以使用'console.log(hiddenId)'在控制台中检查它,它会返回你的数组ids –

+0

我已经使用这种方法先生..但它只获取第一个OTdate .. – arima

首先检查控制台,点击事件工作或不!

然后试试这个:

对于没有隐藏字段:

var employee_id = $('.edit_data').attr("id"); 

对于隐藏字段:

var employee_id = $("input[name=OT_date]").attr("id"); 
+0

谢谢先生..按钮正在工作,它已经给我的结果...但由我的查询给出的结果是错误的..那就是为什么我需要在这里得到OT日期,并将其传递给查询,PHP中,PHP – arima