Ajax在新页面中返回数据

时间:2017-06-24 07:55:50

标签: javascript php jquery ajax codeigniter

我的控制器命名表单中有一个php函数,我想根据条件显示一些消息。

我在if else块中回显消息。但是,不是存储在msg参数中并以AJAX的成功函数中给出的格式显示,而是显示在新页面中回显的消息。

<script type="text/javascript">
        $("#sign_up").click(function() {

            var form_data = {
                firstName: $('#firstName').val(),
                secondName: $('#secondName').val(),
                email: $('#email').val(),
                password: $('#password').val()
            };
            $.ajax({
                url: "<?php echo site_url('form/submit'); ?>",
                type: 'POST',
                data: form_data,
                success: function(msg) {
                    if (msg == 'YES') {
                        $('#alert-msg').html('<div class="alert alert-success text-center">Your mail has been sent successfully!</div>'); }
                    else if (msg == 'NO') {
                        $('#alert-msg').html('<div class="alert alert-danger text-center">Error in sending your message! Please try again later.</div>'); }
                    else {
                        $('#alert-msg').html('<div class="alert alert-danger">' + msg + '</div>'); }
                }
            });
            return false;
        });
    </script>

感谢所有试图帮助的人!!

2 个答案:

答案 0 :(得分:1)

尝试使用这种方式。

<script type="text/javascript">
    $("#sign_up_form").submit(function() {

        var form_data = {
            firstName: $('#firstName').val(),
            secondName: $('#lastName').val(),
            email: $('#email').val(),
            password: $('#password').val()
        };
        $.ajax({
            url: "<?php echo site_url('form/submit'); ?>",
            type: 'POST',
            data: form_data,
            success: function(msg) {
                if (msg == 'YES') {
                    $('#alert-msg').html('<div class="alert alert-success text-center">Your mail has been sent successfully!</div>'); }
                else if (msg == 'NO') {
                    $('#alert-msg').html('<div class="alert alert-danger text-center">Error in sending your message! Please try again later.</div>'); }
                else {
                    $('#alert-msg').html('<div class="alert alert-danger">' + msg + '</div>'); }
            }
        });
        return false;
    });
</script>

此处不是使用点击事件,我建议使用提交事件,secondName: $('#secondName').val(),中出现错误,将其更改为secondName: $('#lastName').val(),。 你的表格将是

    <div id="alert-msg"></div>
 <?php 
      echo form_open("form/submit", array("id"=>"sign_up_form"));
  ?>
 <div class="input-group">
     <input type="text" class="form-control" name="firstName" placeholder="First Name" id="firstName">
     <input type="text" class="form-control" name="lastName" placeholder="Last Name" id="lastName">
 </div>

 <input type="email" class="form-control" name="email" placeholder="Email" id="email">
 <input type="password" class="form-control" name="password" placeholder="Password" id="password">

 <div style="text-align:center;margin-top:20px">
      <button type="submit" class="btn btn-primary" id="sign_up">Sign Up</button>
 </div>
 

答案 1 :(得分:1)

首先,您需要使用preventDefault()函数,如下所述。它可以帮助您停止将页面重定向到新页面。

$("#sign_up").click(function(e) {
    e.preventDefault():

第二次更正,在Ajax中调用添加dataType,如下所述。

$.ajax({ 
       url: '<?php echo site_url('form/submit'); ?>',
       type: 'POST', 
       data: form_data, 
       dataType: 'json',
       success: function(msg) {

这会对你有所帮助。如果它不起作用,请告诉我。