我有一个表格select multiple
是根据别人的数据填写的select
,情况是我想将它发送ajax
到文件php
中与数据库进行通信,情况是我使用数据取表格$("#").serialize()
,所以我没有不知道如何接收数据php
,如果有人可以帮助我,我将不胜感激。
JQuery Ajax
function enviarRegistro(){
if(validarCampos()){
var datos = $("#formRegistro").serialize();
$("#pageLoader").fadeIn("fast");
if($("#checkinput").prop("checked")){
$.ajax({
data: datos,
url: '/Jomar/users_control/controller/ControlAsisController.php?action=guardarHasta',
type: 'post',
success: function (response){
var html;
if(response.trim() != "1"){
html = "<h4> No se han podido insertar "+ response.trim() +" registros</h4>";
$("#respuesta").addClass("alert-danger");
$("#respuesta").html(html);
$("#pageLoader").fadeOut("fast");
$("#respuesta").fadeIn("slow");
setTimeout(function(){
$("#respuesta").fadeOut(2000, function() {
$("#respuesta").html("");
$("#respuesta").removeClass("alert-danger");
});
}, 2000);
}else{
$("#respuesta").addClass("alert-success");
html = "<h4> Se ha insertado correctamente </h4>";
$("#respuesta").html(html);
$("#pageLoader").fadeOut("fast");
$("#respuesta").fadeIn("slow");
$("#empleado").val(0);
$("#nota").val("");
llenarEmpleados();
$("#errores").fadeOut("slow");
setTimeout(function(){
$("#respuesta").removeClass("alert-success");
$("#respuesta").fadeOut(2000, function() {
$("#respuesta").html("");
});
}, 2000);
}
}
});
HTML
<select class="selectpicker" multiple data-size="6" data-live-search="true" id="empleado" name="empleado" disabled="disabled">
<option value="0" disabled>Seleccionar empleado</option>
</select>
请注意,JQuery 函数
serialize()
返回的 a看起来string
类似于get
在URL中传递的字符串。例子:此字符串不是JSON,因此
type
您在AJAX调用中定义的字符串不是正确的。除了在我们的案例中JSON不是一种适合我们的格式之外,因为我们有多个类似的字段,key
而这不允许我们拥有它。这就是为什么我建议您使用该函数
serializeArray()
而不是serialize()
.将选择多个转换为数组的示例:
使用serializeArray()获取的数组的AJAX发送调用示例
然后从PHP中,您唯一需要做的就是检索
$_POST
发送的数据:要收集一个选择的多个值,您需要
array
使用表单字段的名称发送选择的数据。字段的名称就是
empleado[]
.