jQuery $ .post不发送数据

时间:2015-04-09 18:53:18

标签: javascript php jquery ajax post

我正在尝试通过$ .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();

}

?>

提前致谢。

2 个答案:

答案 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'])) 

无论如何,谢谢你的帮助!

相关问题