0

我有一个带有 $.ajax 的 ajax+jquery 导航系统,我正在尝试对 $.ajax 进行第二次调用以发送联系表单信息,但是,当我添加第二个 $.ajax 时,所有这些都停止工作。

第一次通话 -

function loadPage(url)
{
    url=url.replace('#!','');

    $('#loading').css('visibility','visible');

    $.ajax({
        type: "POST",
        url: "loader.php",
        data: 'page='+url,
        dataType: "html",
        success: function(msg){

            if(parseInt(msg)!=0)
            {
                $('#conteudo').html(msg);
                $('#loading').css('visibility','hidden');
            }
        }

    });

}

第二次通话

$("#enviar").click(function() {  

    var str = $("form").serializeArray();

    $.ajax({  
        type: "POST",  
        url: "update.php",  
        data: str, 
        success: function(mn) { 

            if(parseInt(mn)!=0)
            {

            $("#conteudo").html(mn);
            $("#enviado").css('visibility','visible');

            }

    }

    return false;

});

@编辑

很好!第一个 ajax 不再卡住了,但是第二个没有按预期工作。

这旨在将 $_POST 值解析为 php 脚本,如果可以,则将 div 变为可见..

我是怎么做到的——

<form name="formcontato" id="form">
  <fieldset>
    <label>Seu nome</label>
    <input type="text" name="nome" class="input-block-level">

    <label>Email</label>
    <input type="email" name="email" placeholder="seu@email.com" class="input-block-level">

    <div class="form-actions">
    <input type="button" name="enviar" value="Enviar" id="enviar" class="btn btn-baixar" />  
    </div>
  </fieldset>
</form> 

这是表格。

$("#enviar").click(function () {

    var str = $("#form").serialize();

    $.ajax({
        type: "POST",
        url: "update.php",
        data: str,
        success: function (mn) {

            alert("Ok!");

            if (parseInt(mn) != 0) {

                $("#conteudo").html(mn);
                $("#enviado").css('visibility', 'visible');

            }

        }

    });

    return false;

}); 

这是js

if($_POST) {

$nome = trim($_POST['nome']);
echo $nome;

}

这是update.php

4

1 回答 1

1

在您发布的内容中,第二个函数没有$.ajax()使用 a 正确关闭该函数,});因此它会生成解析错误,并且此块中的任何代码都不可用。

$.ajax()在呼叫成功关闭的地方试试这个。

$("#enviar").click(function () {

    var str = $("form").serializeArray();

    $.ajax({
        type: "POST",
        url: "update.php",
        data: str,
        success: function (mn) {

            if (parseInt(mn) != 0) {

                $("#conteudo").html(mn);
                $("#enviado").css('visibility', 'visible');

            }

        }

    });

    return false;

});

仅供参考,正确和一致的缩进对于发现这些问题至关重要。

于 2013-05-06T04:25:52.510 回答