尝试使用 AJAX 动态加载 table 但未显示行
Tried to load table dynamically using AJAX but rows not displayed
在表单中,我有一个下拉列表和一个文本框,它们将获取用户的输入。然后当用户提交表单时,我不想刷新整个页面。我只想要它下面的 table 来刷新和从数据库加载数据。我尝试了下面的代码,但只弹出警报。 table 仍然是空的。
$('#frmPrescDrugList').submit(function (e) {
e.preventDefault(); // Prevent Default Submission
$.ajax({
url: '/consultation/PrescDrugList',
type: 'POST',
data: $(this).serialize(), // it will serialize the form data
dataType: 'html',
success: function (data) {
var row_data = "";
row_data += "@{ var rowNum = 0; } @foreach (var item in Model.LoadDrugList) {
rowNum += 1;
<tr Class="odd gradeX">
<td>@rowNum</td>
<td>@item.dsubsystem</td>
<td>@item.tradename </td>
<td style="text-align: center; vertical-align: middle;"><form Class="form-horizontal" role="form" action="@Url.Action("Prescription", "consultation", new {dgid = item.dgid})" method="post"><Button type="submit" Class="btn btn-default" name="btnDrugListSelect">Select</Button></form></td>
</tr>
}";
$("#LoadDrugListTable").append(row_data);
alert('Drug list has been loaded.');
},
error: function () {
alert('Ajax Submit Failed ...');
}
}); // end ajax
}); // end form-submit
LoadDrugListTable 是 table 的 ID。 ajax 已经成功了,为什么不加载数据?任何人都可以帮助指出我的错误或建议我更好的示例参考吗?
我尝试遵循 this 示例,但我被困在 @Url.Action() 处。它带有红色下划线。当我尝试用 "" 和 + 将它们分开时,它仍然带有红色下划线
Too many characters in character literal.
已更新
这是我提到的未正确传递 ID 的表单。我将它传递给 get 方法。顺便说一下,这是一个与我上面提到的页面完全不同的页面。当我尝试在另一个页面上做同样的事情时,它传递了一个空的付费值。支付是id。也许是因为这次我要转到另一个页面。
"<td style='text-align: center; vertical-align: middle;'><form Class='form-horizontal' role='form' action='@Url.Action("PatientMedicalInfo", "consultation", new { paid = Html.Raw(" + data[i].paid + ") }) method='get'><Button Class='btn btn-default' name='btnSelectPatient' id='btnSelectPatient'>Select</Button></form></td>"
这是控制器:
[HttpGet()]
public ActionResult PatientMedicalInfo(string paid)
{
PatientLookupVM Patient = new PatientLookupVM();
dynamic CurrentPatientDetailsByPtId = Patient.GetCurrentPatientDetailsByPtId(paid);
Patient.LoadCurrentPatientDetails = CurrentPatientDetailsByPtId;
return View(Patient);
}
尝试用单引号 '
替换双引号 "
。
好吧,为了保持一致性,您可以在任何地方更换它们。
<td ... action='@Url.Action("Prescription", "consultation", new {dgid = item.dgid})' ... </td>
在表单中,我有一个下拉列表和一个文本框,它们将获取用户的输入。然后当用户提交表单时,我不想刷新整个页面。我只想要它下面的 table 来刷新和从数据库加载数据。我尝试了下面的代码,但只弹出警报。 table 仍然是空的。
$('#frmPrescDrugList').submit(function (e) {
e.preventDefault(); // Prevent Default Submission
$.ajax({
url: '/consultation/PrescDrugList',
type: 'POST',
data: $(this).serialize(), // it will serialize the form data
dataType: 'html',
success: function (data) {
var row_data = "";
row_data += "@{ var rowNum = 0; } @foreach (var item in Model.LoadDrugList) {
rowNum += 1;
<tr Class="odd gradeX">
<td>@rowNum</td>
<td>@item.dsubsystem</td>
<td>@item.tradename </td>
<td style="text-align: center; vertical-align: middle;"><form Class="form-horizontal" role="form" action="@Url.Action("Prescription", "consultation", new {dgid = item.dgid})" method="post"><Button type="submit" Class="btn btn-default" name="btnDrugListSelect">Select</Button></form></td>
</tr>
}";
$("#LoadDrugListTable").append(row_data);
alert('Drug list has been loaded.');
},
error: function () {
alert('Ajax Submit Failed ...');
}
}); // end ajax
}); // end form-submit
LoadDrugListTable 是 table 的 ID。 ajax 已经成功了,为什么不加载数据?任何人都可以帮助指出我的错误或建议我更好的示例参考吗?
我尝试遵循 this 示例,但我被困在 @Url.Action() 处。它带有红色下划线。当我尝试用 "" 和 + 将它们分开时,它仍然带有红色下划线
Too many characters in character literal.
已更新
这是我提到的未正确传递 ID 的表单。我将它传递给 get 方法。顺便说一下,这是一个与我上面提到的页面完全不同的页面。当我尝试在另一个页面上做同样的事情时,它传递了一个空的付费值。支付是id。也许是因为这次我要转到另一个页面。
"<td style='text-align: center; vertical-align: middle;'><form Class='form-horizontal' role='form' action='@Url.Action("PatientMedicalInfo", "consultation", new { paid = Html.Raw(" + data[i].paid + ") }) method='get'><Button Class='btn btn-default' name='btnSelectPatient' id='btnSelectPatient'>Select</Button></form></td>"
这是控制器:
[HttpGet()]
public ActionResult PatientMedicalInfo(string paid)
{
PatientLookupVM Patient = new PatientLookupVM();
dynamic CurrentPatientDetailsByPtId = Patient.GetCurrentPatientDetailsByPtId(paid);
Patient.LoadCurrentPatientDetails = CurrentPatientDetailsByPtId;
return View(Patient);
}
尝试用单引号 '
替换双引号 "
。
好吧,为了保持一致性,您可以在任何地方更换它们。
<td ... action='@Url.Action("Prescription", "consultation", new {dgid = item.dgid})' ... </td>