У меня есть форма, содержащая ввод, выпадающий список и 3 флажка. Мне нужно получить значения из этой формы и сохранить данные на сервере.
Значения от ввода и выпадания идут, но я не могу получить значение флажков.
Я установил флажок как ярлык, поэтому они выглядят так:
После отправки формы значение флажка всегда приходит как "включено", тогда как я хочу, чтобы оно получилось истинным или ложным в зависимости от того, проверен ли пользователь или нет
форма
<form id="search_form" method="post" >
<input id="fullname" name="fullname" type="text">
<select name="location" id="location">
<option value="">Location</option>
<option value="A">A</option>
<option value="B">B</option>
</select>
<input type="checkbox" name="XID_name" value=1 id="XID"/>
<label class="a" for="XID">X </label>
<input type="checkbox" name="YID_name" id="YID" />
<label class="a" for="YID">Y </label>
<input type="checkbox" name="ZID_name" id="ZID" />
<label class="a" for="ZID">Z </label>
<button type="submit" id="save" >SEARCH</button>
</form>
скрипт
<script type="text/javascript">
$("#search_form").submit(function(e) {
e.preventDefault();
var fullname = $("#fullname").val();
var location = $("#location").val();
var XID = $("#XID").val();
var YID = $("#YID").val();
var ZID = $("#ZID").val();
$.ajax({
type: "POST",
url: "ABC/DEF",
data: { fullname:fullname, location:location, XID:XID, YID:YID, ZID:ZID },
success: function(data){
console.log(data)
}
});
})
</script>
Backend
<?php
$data = array(
'fullname' => $this->input->post('fullname'),
'location' => $this->input->post('location'),
'XID' => $this->input->post('XID'),
'YID'=>$this->input->post('YID'),
'ZID' => $this->input->post('ZID'),
);
echo "<pre>";
print_r($data);
echo "</pre>";
?>
Результирующий массив
Array
(
[fullname] =>
[location] =>
[XID] => on
[YID] => on
[ZID] => on
)
Кто-нибудь может рассказать, как решить эту проблему?
В jquery вы должны проверить, что ваш флажок установлен или нет. В соответствии с этим вам необходимо передать значение
var XID = $("#XID").prop('checked');
var YID = $("#YID").prop('checked');
var ZID = $("#ZID").prop('checked');
var XID = $("#XID").is(':checked')
var XID = $("#XID").isChecked();
попробуй это