在var中存储html(响应)

时间:2014-01-31 15:03:50

标签: javascript html ajax

我使用ajax发送表单而不重新加载。我使用以下方法:

我的邮件发件人:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    mailTo($to, $subject, $message, $headers); 
    echo "0";
}else{
    echo "1";
}

将信息发送到上面的php文件的脚本

$(document).ready(function(){
    $('#submitbtn').click(function(){
        $.post("send.php", $("#mycontactform").serialize(),  function(response) {   
            $('#success').html(response);
        });
        return false;
    });
});

每当我提供有效的电子邮件及其发送时,它都会返回0。当它失败时,它返回1。现在我没有在div #SUCCESS中显示这个值,而是想将这个值存储在var中,这样我就可以看到邮件是否发送了。如果发送可以隐藏联系表格。

我想出了这个:

$(document).ready(function(){
    $('#submitbtn').click(function(){
        $.post("send.php", $("#mycontactform").serialize(),  function(response) {   
            var x = html(response);
            if (x == 0){
            $('#mycontactform.hide').hide;
                document.getElementByID('succes').innerHTML = 'Message send';
            }else{
                //display some error message
            }
        });
        return false;
    });
});

但它不起作用。谁知道为什么。我认为它与var x =有关,不存储Html响应

2 个答案:

答案 0 :(得分:1)

在您的第一个代码段中,您执行了此操作:

$('#success').html(response);

这里,html()是$的函数,在你的第二个片段中你做了这个:

var x = html(response);

但可能你没有名为html()的全局函数?你可能想要:

var x = parseInt( response,10 );

我还强烈建议您考虑使用Chrome / FireFox / IE DevTools以便将来调试此类内容。

答案 1 :(得分:0)

你可以在得到回复之后准备你的html。然后将它附加到你想要的任何地方的前一个版本。它将避免刷新页面。

可以做这样的事情

 $(document).ready(function()
        {
         var html = '';
         html += '<div class="item col-xs-12 col-lg-6">';
         html += '<div class="thumbnail">';
         html += '<div class="caption">';
         html += '<h4 class="group inner list-group-item-heading">';
         html += '<b>'+data.subject+'</b></h4>';
         html += '<h5><b>'+data.projectname+'</b></h5><br />';
         html += '</div>';
         html += '</div></div>';
         $('#content').append(html);
        });

内容是我的部门的ID。我正在准备html并将其附加到内容数据是回复。