【发布时间】:2014-05-14 19:33:00
【问题描述】:
我花了将近一整天的时间试图自己解决这个问题,但我仍然是 AJAX/JS 的新手并且失败了,所以我将不胜感激任何指针。
我有一个模式(引导程序)中的复选框列表,它们都具有相同的名称。我希望用户单击相关复选框并提交而不重定向页面。我一直在尝试通过 JS 和 AJAX 来做到这一点,但显然我缺少一些东西。
BS modal里面的形式如下。
<form method="POST" id="hmis105">
<div class="checkbox">
<label><input type="checkbox" name="reporting[]" value="80">Leishmaniasis</label>
</div>
<div class="checkbox">
<label><input type="checkbox" name="reporting[]" value="81">Lymphatic Filariasis (hydrocele)</label>
</div>
<div class="checkbox">
<label><input type="checkbox" name="reporting[]" value="82">Lymphatic Filariasis (Lympoedema)</label>
</div>
<div class="checkbox">
<label><input type="checkbox" name="reporting[]" value="83">Urinary Schistosomiasis</label>
</div>
<input type="hidden" name="ConsultationID" value="{$ConsultationID}" />
<button class="btn btn-primary" id="btnSubmit">Save</button>
我尝试了很多 Javascript 方法,但这是我现在尝试使用的方法。
$(document).ready(function () {
$("#btnSubmit").click(function(){
var hmis = new Array();
$('input[name="reporting[]"]:checked').each(function() {
hmis.push(this.value);
});
var ConsultationID = $(this).attr('ConsultationID');
$.ajax({
url: "ajax/ajax_add_reporting_hmis105.php",
type: "POST",
datatype: "json",
data: {hmis : hmis, ConsultationID : ConsultationID},
});
});
});
最后这是 ajax 文件。我省略了 php 开始标签和数据库连接信息。 $db 只是创建一个新的数据库连接
foreach ($_POST['hmis'] as $report) {
$now = date('Y-m-d H:i:s');
$data = array(
'consultationId' => $_POST['ConsultationID'],
'diseaseId' => $report,
'EntryTime' => $now
);
$reported = $db->insertRow("database", "table", $data);
}
老实说,在这一点上,我正在把头撞到墙上,我正在重新阅读那些只会让我更加困惑的东西>:(感谢您的宝贵时间!
【问题讨论】:
-
我也尝试过使用 $('#hmis105').serialize() 作为 javascript 中的数据,但这似乎也不起作用......或者我做错了什么(很有可能)。
标签: javascript ajax forms checkbox