Php 使用ajax插入复选框数组
我正在使用复选框创建表单,如下所示:Php 使用ajax插入复选框数组,php,ajax,Php,Ajax,我正在使用复选框创建表单,如下所示: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form class="form7" method="POST"> <li> <label for="Produto">Estado Resguardo</label>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="form7" method="POST">
<li>
<label for="Produto">Estado Resguardo</label>
<ul class="flex-outer">
<div class="form-check">
<label class="toggle">
<input type="checkbox" id="Resguardo1" name="Resguardo[]" value="Cheiro"> <span class="label-text"> Cheiro</span>
</label>
</div>
<div class="form-check">
<label class="toggle">
<input type="checkbox" id="Resguardo2" name="Resguardo[]" value="Deteriorado"> <span class="label-text">Deteriorado</span>
</label>
</div>
<div class="form-check">
<label class="toggle">
<input type="checkbox" id="Resguardo3" name="Resguardo[]" value="Molhado/Sujo"> <span class="label-text">Molhado/Sujo</span>
</label>
</div>
</ul>
</li>
<li style="float: right">
<button type="button" class="btn btn-danger btn7" data-dismiss="modal">Cancelar</button>
<button class="btn btn-success" onclick="inserir_registo6()">Gravar</button>
</li>
</form>
在使用php的脚本中,我有如下内容:
$Colaborador = $_SESSION['usuarioId'];
if (isset($_POST["Resguardo"])) {
$optionArray = $_POST["Resguardo"];
$teste = implode(',', $optionArray);
for ($i=0; $i<count($teste); $i++) {
$query = 'INSERT INTO RegistoResguardos (``Resguardo`, `Colaborador`) VALUES ( ?, ?)';
$stmt = $conn->prepare( $query );
$stmt->bind_param("ss", $teste, $Colaborador);
$stmt->execute();
}
但是我仍然有同样的问题,没有插入到数据库中。我这样做解决了这个问题:
(function ($) {$(document).ready(function(){
$("#form7").submit(function(e){
e.preventDefault();
var Utente = form7.Utente.value;
var Quantidade1 = form7.Quantidade1.value;
if (!Utente) {
alert('Preencha o campo com o Utente');
form7.Utente.focus();
return false;
}
if (!Quantidade1) {
alert('Preencha o campo com a Quantidade');
form7.Quantidade1.focus();
return false;
}
$.ajax({
type: "POST",
url: "./registoresguardos",
data: $("#form7").serialize(), // serializes the form's elements.
dataType: "json",
success: function (data)
{
$(".success_messages").removeClass('hide'); // success message
},
error: function(data){
$(".error_message").removeClass('hide'); // error message
},
complete: function()
{
$('.form7')[0].reset();
}
});
});
});
})(jQuery);
$\u POST[“Resguardo”]不是一个数组,用于阻止
提交表单
将type=“button”
添加到按钮gravar
。这将阻止默认的type=“submit”
var-dadosajax-should=$(“.form7”).serialize();那么$\u POST[“Resguardo”]将是一个数组,除非没有选中任何复选框
function inserir_registo6()
{
var dadosajax = {
'Resguardo' : $("input[name=Resguardo]").val()
};
$.ajax({
url: './registosobremesa',
type: 'POST',
cache: false,
data: dadosajax,
error: function(){
$(".error_message").removeClass('hide');
},
success: function(result)
{
$('.form7')[0].reset();
}
});
}
(function ($) {$(document).ready(function(){
$("#form7").submit(function(e){
e.preventDefault();
var Utente = form7.Utente.value;
var Quantidade1 = form7.Quantidade1.value;
if (!Utente) {
alert('Preencha o campo com o Utente');
form7.Utente.focus();
return false;
}
if (!Quantidade1) {
alert('Preencha o campo com a Quantidade');
form7.Quantidade1.focus();
return false;
}
$.ajax({
type: "POST",
url: "./registoresguardos",
data: $("#form7").serialize(), // serializes the form's elements.
dataType: "json",
success: function (data)
{
$(".success_messages").removeClass('hide'); // success message
},
error: function(data){
$(".error_message").removeClass('hide'); // error message
},
complete: function()
{
$('.form7')[0].reset();
}
});
});
});
})(jQuery);