我正在尝试通过$ .post发送数据但是当我检查Firefox的网络部分时,似乎数据永远不会被发送,但成功事件会被触发。我不知道出了什么问题......我尝试使用$ .post和$ .ajax,我得到了相同的结果。
HTML
<button id="nuevoadmin">Agregar administrador</button>
<article id="addadmin">
<form id="newadmin">
<label>Nombre</label> <input type="text" name="nomadmin" required/>
<label>Puesto</label>
<select name="puesto" id="jobs">
</select>
<label>Correo electrónico</label> <input type="email" name="emailadmin" required/>
<span class="vacio">Campo requerido</span>
<span class="malcorreo">Introduzca una dirección de correo válida</span>
<label>Clave de acceso</label> <input type="password" name="claveadmin" required/>
<span class="badpass">La contraseña sólo puede contener de 6 a 10 caracteres alfanuméricos</span>
<button id="enviaadmin">Agregar</button>
</form>
</article>
jQuery用于ajax函数
$(document).ready(function() {
muestraemp();
$('#nuevoadmin').on('click', listaPuesto);
$('#admins table tbody').on('tr td:last-child', 'click', function() {
var rowIndex = $(this).closest('tr').data('value');
modifica(rowIndex);
});
$('#lightbox').ready(function() {
$('#enviaadmin').on('click', function() {
var datos = $(this).parent('form').serialize();
enviar(datos);
});
});
});
function listaPuesto() {
var puestos = '';
var uno = '<option value="0" selected>Seleccione un puesto</option>';
$.getJSON('Main.php', 'add', function(data) {
$.each(data, function(index, item) {
puestos += '<option value="'+item.puesto+'">'+item.puesto+'</option>';
});
$('#jobs').html(uno+puestos);
});
}
function muestraemp() {
var empleados = '';
$.post('Main.php', function(data) {
$.each(data, function(index, item) {
empleados += '<tr data-value="'+item.idEmpleado+'"><td>'+item.nombre+'</td><td>'+item.correo+'</td><td>'+item.puesto+'</td><td>lololo</td></tr>';
});
$('#admins table tbody').append(empleados);
}, 'json');
}
function enviar(formemp) {
$.post('Main.php', formemp, function(data) {
$('#successadd').show();
muestraemp();
});
}
Lightbox是在另一个脚本中动态生成的
var nuevoadmin = $('#addadmin');
$('#nuevoadmin').on('click', function() {
lightbox(nuevoadmin);
});
这是我发送数据的网址
<?php
include('Empleado.php');
$empleado = new Empleado('localhost', 'root', 'mysql', 'mydb');
if(isset($_GET['add'])) {
$empleado->listaPuestos();
}
else {
$empleado->muestraEmpleados();
}
if(isset($_POST['formemp'])) {
$empleado->agregaEmpleado($_POST['nomadmin'], $_POST['claveadmin'], $_POST['emailadmin'], $_POST['puesto']);
//$empleado->muestraEmpleados();
}
?>
提前致谢。
答案 0 :(得分:0)
您正尝试使用无效的密钥或表单字段检测表单提交。
您必须使用任何表单字段来检测表单提交或使用以下代码进行检测
if(isset($_POST)){
/* Form submitted using post method process data here... */
}
答案 1 :(得分:0)
我解决了。问题是我期望获取包含序列化表单的变量的名称。我只是更改了这一行:
if(isset($_POST['formemp']))
对此:
if(isset($_POST['nomadmin'], $_POST['claveadmin'], $_POST['emailadmin'], $_POST['puesto']))
无论如何,谢谢你的帮助!