2017-02-17 40 views
0

我有一个AJAX请求仍然加载php脚本,而不是无刷新执行其功能的。猜有一个与我ajax一个问题,下面是什么毛病AJAX脚本阿贾克斯脚本无法正常

HTML

<form action='connect_exec.php' method='post' id='connect_form' enctype='multipart/form-data'> 
    <input type='text' name='conn_id' id='conn_id' value='$ad_id'> 
    <input type='submit' name='connect' class='conn_text' id='connect' value='connect +'> 
</form> 

Ajax请求

$('#connect_form').submit(function(e) { 
    e.preventDefault(); 
    var ad_id = $('#conn_id').val(); 
    $.ajax({ 
     type: "POST", 
     url: "connect_exec.php", 
     data: ad_id 
    }).done(function(response) { 
     console.log(response); 
    }).fail(function(data) { 
     console.log(data); 
    }); 
}); 

PHP脚本

require_once("db.php"); 
$db = new MyDB(); 
session_start(); 
if (isset($_POST['connect'])) { 
    $my_id = $_SESSION['log_id']; 
    $ad_id = $_POST['conn_id']; 
    $rand_num = rand(); 
    $hsql = <<<EOF 
    SELECT COUNT(hash) as count FROM connect WHERE(user_one = '$my_id' 
     AND user_two = '$ad_id') OR(user_one = '$ad_id' 
     AND user_two = '$my_id'); 
    EOF; 
    $hret = $db->querySingle($hsql); 
    if ($hret == 1) { 
     $response = "Your are already connected to '$ad_id'"; 
    } else { 
     $csql = <<<EOF 
     INSERT INTO connect(user_one, user_two, hash) VALUES('$my_id', '$ad_id', '$rand_num'); 
     EOF; 
     $cret = $db - > exec($csql); 
     if (!$cret) { 
      echo "Error connecting to '$ad_id'"; 
     } else { 
      echo "Successful"; 
     } 
    } 
} 

的形式执行,但并非没有刷新页面。请问ajax有什么问题?

+0

你有你的控制台任何错误? –

+0

监视控制台上的服务器端回声语句,并调试您的ajax调用,其中执行已经结束,需要花费时间等。 –

+0

完全没有。当我点击提交,它加载'表单动作PHP文件' –

回答

1

我建议你送形式data系列化,使用serialize()方法。

此外,使用submit事件form$('form').on('submit', function (e) {}

$('form').on('submit', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "connect_exec.php", 
     data: $('form').serialize() 
    }).done(function(response) { 
     console.log(response); 
    }).fail(function(data) { 
     console.log(data); 
    }); 
}); 
+0

仍然没有工作 –

0

$('#connect').click(function(e) { 
 
     e.preventDefault(); 
 
     var ad_id = $('#conn_id').val(); 
 
     console.log(ad_id); 
 

 
     $.ajax({ 
 
      type: "POST", 
 
      url: "connect_exec.php", 
 
      data: ad_id 
 
     }) 
 
     .done(function (response) { 
 
      console.log(response); 
 
     }) 
 
     .fail(function (data) { 
 
      console.log(data); 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action='connect_exec.php' method='post' id='connect_form' enctype='multipart/form-data'> 
 
     <input type='text' name='conn_id' id='conn_id' /> 
 
     <input onclick="return;" type='submit' name='connect' class='conn_text' id='connect' value='connect +'> 
 
     </form>