2017-04-12 77 views
0

我是新来的php和AJAX,我最近分配了开发休假管理系统。我遇到了一个小问题,我从mysql获取数据并以表格格式显示,其中一个字段被设计为下拉列表,因此,对于我收到的数据和完美显示,现在我的问题是,我想从中选择值下拉列表,当我点击按钮,它应该更新它在数据库中。我的代码是php ajax下拉列表编辑后未更新

display_record.php

function save_row(leave_ID) 
 
{ 
 
      
 
      
 
\t var hods=document.getElementById("hods_val"+leave_ID).value; 
 

 
\t 
 
\t \t 
 
\t 
 
$.ajax 
 
({ 
 
    type:'post', 
 
    url:'modify_records.php', 
 
    data:{ 
 
\t edit_row:'save_row', 
 
\t row_id:leave_ID, 
 
\t hods_val:hods 
 
    }, 
 
    success:function(response) { 
 
    if(response=="success") 
 
    { 
 
    
 
    document.getElementById("hods_val"+leave_ID).innerHTML=hods; 
 
    
 
    document.getElementById("edit_button"+leave_ID).style.display="block"; 
 
    document.getElementById("save_button"+leave_ID).style.display="none"; 
 
    } 
 
    } 
 
}); 
 
}
$host="localhost"; 
 
$username="root"; 
 
$password=""; 
 
$databasename="hrdb"; 
 
$con=mysqli_connect($host,$username,$password); 
 
$db=mysqli_select_db($con,$databasename); 
 

 
$select =mysqli_query($con,"SELECT * FROM leavedb"); 
 

 

 
?> 
 

 
<table align="center" cellpadding="10" border="1" id="user_table" class="data-table"> 
 
<caption class="title">Leave Requested by staff Members</caption> 
 

 
<tr> 
 
<th>Emp ID</th> 
 
<th>Emp name</th> 
 
<th>Leave Token</th> 
 
<th>Leave Type</th> 
 
<th>Applied Date</th> 
 
<th>Leave From</th> 
 
<th>Leave To</th> 
 
<th>Req.Days</th> 
 
<th>Reason</th> 
 
<th>Available credit</th> 
 
<th>HOD Status</th> 
 
<th>Status</th> 
 
</tr> 
 
<?php 
 
while ($row=mysqli_fetch_array($select)) 
 
{ 
 
?> 
 
<tr id="row<?php echo $row['leave_ID'];?>"> 
 
    <td id="eid_val<?php echo $row['leave_ID'];?>"><?php echo $row['emp_ID'];?></td> 
 
    <td id="empn_val<?php echo $row['leave_ID'];?>"><?php echo $row['emp_ID'];?></td> 
 
    <td id="lid_val<?php echo $row['leave_ID'];?>"><?php echo $row['leave_ID'];?></td> 
 
    <td id="lt_val<?php echo $row['leave_ID'];?>"><?php echo $row['leave_type'];?></td> 
 
    <td id="dor_val<?php echo $row['leave_ID'];?>"><?php echo $row['date_of_request'];?></td> 
 
    <td id="df_val<?php echo $row['leave_ID'];?>"><?php echo $row['date_from'];?></td> 
 
    <td id="dt_val<?php echo $row['leave_ID'];?>"><?php echo $row['date_to'];?></td> 
 
    <td id="rd_val<?php echo $row['leave_ID'];?>"><?php echo $row['req_days'];?></td> 
 
    <td id="rs_val<?php echo $row['leave_ID'];?>"><?php echo $row['reason'];?></td> 
 
    <td id="ad_val<?php echo $row['leave_ID'];?>"><?php echo $row['available_days'];?></td> 
 
<td id="hods_val<?php echo $row['leave_ID'];?>"> 
 
    
 
<select id="hods_val" name="hods_val"class="aaa"> 
 
    <option value="Approved">Approved</option> 
 
    <option value="NotApproved">not Approved</option> 
 
    <option value="MeetMe">Meet Me</option> 
 
    <option value="hods1" selected><?php echo $row['hod_status'];?></option> 
 
</select> 
 
    </td> 
 
    <td> 
 
<input type='button' class="edit_button" id="edit_button<?php echo $row['leave_ID'];?>" value="edit" onclick="edit_row('<?php echo $row['leave_ID'];?>');"> 
 
<input type='button' name="submitt"class="save_button" id="save_button<?php echo $row['leave_ID'];?>" value="Execute" onclick="save_row('<?php echo $row['leave_ID'];?>');"> 
 

 
    
 
    
 
    
 
    </td> 
 
</tr> 
 
<?php 
 
    
 
    
 

 
    
 

 

 

 
} 
 

 

 
    
 

 

 

 
?> 
 

 

 
</table> 
 

 

 

 
modify_records.php 
 

 

 
<?php 
 
$host="localhost"; 
 
$username="root"; 
 
$password=""; 
 
$databasename="hrdb"; 
 

 
$connect=mysqli_connect($host,$username,$password); 
 
$db=mysqli_select_db($connect,$databasename); 
 

 

 

 
if(isset($_POST['edit_row'])) 
 
\t 
 

 
$row=$_POST['row_id']; 
 
    
 
$hods111=$_POST['hods_val']; 
 
    
 

 
if(mysqli_query($connect,"update leavedb set hod_status='$hods111' where leave_ID='$row'");) 
 
    
 
    \t { 
 
\t \t \t 
 
\t \t \t echo '<script language="javascript">'; 
 
\t \t \t echo 'alert("Successfully approved")'; 
 
\t \t \t echo '</script>'; \t 
 
\t \t \t 
 
\t } 
 
    
 
    
 
echo "success"; 
 
exit(); 
 
} 
 

 
?>

+0

所以问题是什么?什么不按预期运作?任何错误?需要更多的信息,以什么不工作... – NewToJS

+0

在服务器端删除分号在if条件结束* if(mysqli_query($ connect,“更新leavedb设置hod_status ='$ hods111'其中leave_ID ='$行'” ))* – JYoThI

回答

0

你不能在DOM使用超过1个相同的ID。

因此,不是这样的:

<select id="hods_val" name="hods_val"class="aaa"> 

让你选择一个唯一的ID:

<select id="select_hods_val<?php echo $row['leave_ID'];?>" name="hods_val"class="aaa"> 

这之后,您将能够选择下拉如下:

document.getElementById("select_hods_val"+leave_ID)...