如何使用 jquery 基于复选框状态获取隐藏字段的值
How to get value of a hidden field based on a checkbox state using jquery
我正在开发一个小型 phalcon 项目,在该项目的特定页面上有一个用于搜索客户的搜索框,然后搜索结果显示在 foreach 循环下,每个结果都有复选框以及一个隐藏字段价值。搜索结果显示为单击按钮时的 ajax 响应。在选中一个特定的复选框时,是否有传递与选中的复选框关联的特定隐藏字段的值。在搜索框下方,有一个表单,它从用户那里获取输入值以及从搜索结果中传递的客户名称值和 ID。我尝试包含 jQuery 脚本以将隐藏字段值传递给输入字段,仅当搜索结果为一个时我才获得所需的输出,但是当搜索结果超过一个时,只有第一个隐藏字段值是通过,即使我选中第二个或第三个复选框。
我是编程大神。请帮忙。
我的代码如下:
public function editengagementAction($id)
{
$engmt = Engagement::findFirstById($id);
$eid=$engmt->customerid;
$cusdetails= Customerdetails::findFirstById($eid);
$this->view->objs = $cusdetails;
if(isset($_POST['searchrslt'])){
$rst = $_POST['searchrslt'];
$outputs = $this->db->query("SELECT * FROM customerdetails WHERE name LIKE '%".$rst."%' ")->fetchAll();
echo"<table width='98%' class='table table-condensed' align='right' id='srchtable' ><thead>";
echo"<tr><th class='mi_table_head' style='padding-left:10px;'>User Name</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'>Company Details</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'>Email</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'>Phone NUmber</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'></th>";
echo"<th class='mi_table_head' style='padding-left:10px;'></th></tr>";
$count=1;
foreach ($outputs as $value) {
echo"<tr><td height='40' class='mi_table_text' style='padding-left:10px;'>$value[name]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'>$value[companyname]<br>$value[companyurl]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'>$value[email]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'>$value[phonenumber]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'><input type='checkbox' name='checkbox' id='count' value='$value[name]'></td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'><input type='hidden' id='$count' name='cid' value='$value[id]'></td></tr>";
echo "<script>
$(function(){ $('#addsubmit').on('click',function(){
$('#checkbox').removeAttr('checked');
var boxChecked = false;
var customid;
$('input[type=\"checkbox\"]').each(function() {
if ($(this).is(':checked')) {
boxChecked = $(this).val();
customid=$('input[type=\"hidden\"]').val();
alert('id is'+ customid);
}
});
$('#custname').val(boxChecked);
$('#custmid').val(cusid);
if (boxChecked == false) {
alert('Please select one customer');
return false; }
alert('Customer Changed !');
return false;
}); });
</script>";
$count++;
}
echo"<tr><td colspan='10' align='right'><input type='button' value='Add Customer' id='addsubmit' class='button blue' name='button' onclick='addcustmr()'></td></tr>";
echo"</tbody><tbody><tbody><tbody></thead></table>";
exit();
$this->view->disable();
}
}
为了获得隐藏的输入,您需要更改此行:
customid=$('input[type=\"hidden\"]').val();
至
customid=$(this).parent().next().children('input[type=\"hidden\"]').val();
我正在开发一个小型 phalcon 项目,在该项目的特定页面上有一个用于搜索客户的搜索框,然后搜索结果显示在 foreach 循环下,每个结果都有复选框以及一个隐藏字段价值。搜索结果显示为单击按钮时的 ajax 响应。在选中一个特定的复选框时,是否有传递与选中的复选框关联的特定隐藏字段的值。在搜索框下方,有一个表单,它从用户那里获取输入值以及从搜索结果中传递的客户名称值和 ID。我尝试包含 jQuery 脚本以将隐藏字段值传递给输入字段,仅当搜索结果为一个时我才获得所需的输出,但是当搜索结果超过一个时,只有第一个隐藏字段值是通过,即使我选中第二个或第三个复选框。 我是编程大神。请帮忙。 我的代码如下:
public function editengagementAction($id)
{
$engmt = Engagement::findFirstById($id);
$eid=$engmt->customerid;
$cusdetails= Customerdetails::findFirstById($eid);
$this->view->objs = $cusdetails;
if(isset($_POST['searchrslt'])){
$rst = $_POST['searchrslt'];
$outputs = $this->db->query("SELECT * FROM customerdetails WHERE name LIKE '%".$rst."%' ")->fetchAll();
echo"<table width='98%' class='table table-condensed' align='right' id='srchtable' ><thead>";
echo"<tr><th class='mi_table_head' style='padding-left:10px;'>User Name</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'>Company Details</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'>Email</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'>Phone NUmber</th>";
echo"<th class='mi_table_head' style='padding-left:10px;'></th>";
echo"<th class='mi_table_head' style='padding-left:10px;'></th></tr>";
$count=1;
foreach ($outputs as $value) {
echo"<tr><td height='40' class='mi_table_text' style='padding-left:10px;'>$value[name]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'>$value[companyname]<br>$value[companyurl]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'>$value[email]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'>$value[phonenumber]</td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'><input type='checkbox' name='checkbox' id='count' value='$value[name]'></td>";
echo"<td valign='middle' class='mi_table_text' style='padding-left:10px;'><input type='hidden' id='$count' name='cid' value='$value[id]'></td></tr>";
echo "<script>
$(function(){ $('#addsubmit').on('click',function(){
$('#checkbox').removeAttr('checked');
var boxChecked = false;
var customid;
$('input[type=\"checkbox\"]').each(function() {
if ($(this).is(':checked')) {
boxChecked = $(this).val();
customid=$('input[type=\"hidden\"]').val();
alert('id is'+ customid);
}
});
$('#custname').val(boxChecked);
$('#custmid').val(cusid);
if (boxChecked == false) {
alert('Please select one customer');
return false; }
alert('Customer Changed !');
return false;
}); });
</script>";
$count++;
}
echo"<tr><td colspan='10' align='right'><input type='button' value='Add Customer' id='addsubmit' class='button blue' name='button' onclick='addcustmr()'></td></tr>";
echo"</tbody><tbody><tbody><tbody></thead></table>";
exit();
$this->view->disable();
}
}
为了获得隐藏的输入,您需要更改此行:
customid=$('input[type=\"hidden\"]').val();
至
customid=$(this).parent().next().children('input[type=\"hidden\"]').val();