修改
<table class="table table-hover" id="patient_name_table">
<tr id="after_tr_2">
<th>Patient</th>
<th>Phone</th>
<th>D.O.B</th>
<th>Address</th>
<th>Edit</th>
</tr>
<tbody>
<?php foreach($name_array as $tabName) { ?>
<tr id="<?php echo $tabName['id']; ?>">
<td class="nameid"><?php echo '<a href="patients.php?patient='.$tabName['id'].'">'.$tabName['patient_name'].'</a>';?></a>
</td>
<td class="phoneid"><?php echo $tabName['phone']?></td>
<td class="dobid"><?php echo $tabName['dob']?></td>
<td class="addressid"><?php echo $tabName['patient_address']?></td>
<td><button type="button" class="btn btn-info" id="editInfo">Edit</button>
</tr>
<?php } ?>
</tbody>
</table>
以下是更新表格:
<div class="box" id="dialog" title="Update Patient Informations" style="display:none">
<form class="form-horizontal" id="add_app_form">
<table class="table table-striped table-hover" style="width:650px;">
<tr><th style="text-align:left;width:150px">Patient Name:</th> <td><input type="text" class="form-control" id="name_upd"></td></tr>
<tr><th style="text-align:left;width:150px">Phone:</th> <td><input type="text" class="form-control" id="phone_upd"></td></tr>
<tr><th style="text-align:left;width:150px">D.O.B:</th><td><input type="text" class="form-control" id="dob_upd"></td></tr>
<tr><th style="text-align:left;width:150px">Address:</th> <td><input type="text" class="form-control" id="address_upd"></td></tr>
<tr><td colspan="3"><button type="button" id="upd_info" class="btn btn-info pull-right">Update</button></td></tr>
<table>
</form>
</div>
我有这一行,我在表格中获取特定行的ID:
var id = $(this).closest('tr').attr('id');
现在,我需要使用以下行从此tr
以及td
的{{1}}名称中获取具体信息:
class=nameid
现在的问题是我无法访问var x = $(this).parent('td').parent('tr').children('td.nameid').text();
将其值更改为AJAX调用成功函数中的新值。
这是ajax调用:
x
他们有办法吗?
答案 0 :(得分:0)
文本将从文本内部返回文本,而不是文本的访问者。尝试将x保留为$(this).parent('td').parent('tr').children('td.nameid')
,并使用x.text()
获取文本,然后使用x.text('new text')
答案 1 :(得分:0)
success
回调拥有自己的this
。您应该在ajax调用之前获得.nameid
的引用,并更改success
中的文本,如下所示。
$("#upd_info").on('click', function(){
var upd_name = $("#name_upd").val();
var upd_dob = $("#dob_upd").val();
var upd_phone = $("#phone_upd").val();
var upd_address = $("#address_upd").val();
//added following line
var x = $(this).closest('tr').find('td.nameid');
$.ajax({
url: 'upd_patient.php',
data: { upd_id: id, n: upd_name, d: upd_dob, p: upd_phone, a: upd_address },
type: 'POST',
dataType: 'JSON',
success: function(res3) {
$("#dialog").dialog("close");
//added following line
x.text('changed text');
},
error: function(res3) {
console.log("Error Updating info");
}
});
});