我花了近一天的时间试图自己解决这个问题,但我仍然是AJAX / JS的新手并且失败所以我会感激任何指针。
我有一个复选框列表,这些复选框位于模态(bootstrap)中,所有复选框都具有相同的名称。我希望用户单击相关的复选框并在不重定向页面的情况下提交。我一直试图通过JS和AJAX来做到这一点,但显然我缺少了一些东西。
BS模态内部的形式如下。
<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);
}
老实说,在这一点上,我正撞在墙上,我正在重读那些让我更加困惑的事情&gt; :(感谢您的时间!
答案 0 :(得分:0)
在服务器端,POST参数hmis
只是一个字符串。要从中提取数据,您需要使用json_decode
:
foreach (json_decode($_POST['hmis']) as $report) {
// ...