Estoy tratando de enviar datos a un archivo php para guardar en la base de datos, pero no tengo ninguna respuesta. Si una casilla de verificación está marcada, [obj][idCheckbox] = 1, de lo contrario [obj][idCheckbox] = 0.
archivo que envia
var i=0; var objetoTodasPermissoes = function(){}; var objTodasPermissoes = new objetoTodasPermissoes(); $.each($(".classePermissoes"), function(){ objTodasPermissoes[$(this)[0].id] = 0 i++; }); $.each($(".classePermissoes:checked"), function(){ alert('ok'); objTodasPermissoes[$(this)[0].id] = 1; }); console.log(objTodasPermissoes); $.each($("#userList tr"),function(){ alert(this.id); var iduser = this.id; $.ajax({ url:'../json/usuarioperm/savePermissions.php', data:({ idusuario:iduser, objTodasPermissoes:objTodasPermissoes, }), success:function(a){ Alert("Saved!"); } }); }); }el archivo savePermissions.php.
$iduser = $_POST["iduser"]; $perm_usuarios = $_POST["objTodasPermissoes"]["perm_usuarios"]; $perm_importar = $_POST["objTodasPermissoes"]["perm_importar"]; $perm_log = $_POST["objTodasPermissoes"]["perm_log"]; $perm_proto = $_POST["objTodasPermissoes"]["perm_proto"]; $perm_limpeza = $_POST["objTodasPermissoes"]["perm_limpeza"]; $perm_lixeira = $_POST["objTodasPermissoes"]["perm_lixeira"]; $perm_relatusuarios = $_POST["objTodasPermissoes"]["perm_relatusuarios"]; $perm_deptos = $_POST["objTodasPermissoes"]["perm_deptos"]; $perm_deptospastas = $_POST["objTodasPermissoes"]["perm_deptospastas"]; $perm_empresas = $_POST["objTodasPermissoes"]["perm_empresas"]; mysql_query("UPDATE hospital.users set perm_usuarios=".$perm_usuarios.", perm_importar=".$perm_importar.", perm_log=".$perm_log.", perm_proto=".$perm_proto.", perm_limpeza=".$perm_limpeza.", perm_lixeira=".$perm_lixeira.", perm_relatusuarios=".$perm_relatusuarios.", perm_deptos=".$perm_deptos.", perm_deptospastas=".$perm_deptospastas.", perm_empresas=".$perm_empresas." where id=".$iduser) or die (mysql_error());Gracias.
PHP es algo interesante porque no extrae de $_POST como otras formas cuando se trata de Ajax. En realidad, deberá leer la entrada de php://input
Aquí hay un pequeño ejemplo
$data = file_get_contents("php://input"); $response = json_decode($data, true ); // True converts to array; blank converts to object $emailAddr = $response["email"];Esperemos que puedas aplicar eso con éxito.
Editar: puede agregar el comando filter_var para eliminar los caracteres incorrectos y desinfectar la entrada.
$emailAddr = filter_var($response["email"], FILTER_SANITIZE_EMAIL); $firstName = filter_var($response["firstName"], FILTER_SANITIZE_STRING);Al depurar esto, recomendaría encarecidamente usar el modo Desarrollador de Chrome con la pestaña 'red'. Encuentre su llamada ajax cerca de la parte inferior y podrá ver la información exacta del encabezado.