1

这段代码到底是怎么回事?

    $(".submit").click(function(){
    alert("clicked");
    var name = $(".name").val();
    var email = $(".email").val();
    var comment = $(".comment").val();
    var articleId = $(".articleId").val(); 
    var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment+ '&articleId=' + articleId;
    if(name=='' || comment==''){
        alert('Please Give Valid Details');
    }
    else{
        alert('so far so good');
        $.ajax({
            type: "POST",
            url: "../_includes/process.php",
            data: dataString,
            cache: false,
            success: function(){
                alert("succes");
                $(".updating").fadeIn(400);
            }
        });
    }
});

一切正常,直到$.ajax找到 process.php,而不是读取和执行代码,而是实际转到浏览器中的该页面。我尝试return false在 ajax 调用之后使用,但是 process.php 中的代码永远不会发生。

这是process.php

    <?php 
    // code to establish connection first

    if($_POST){
    $name=$_POST['name'];
    $name=mysql_real_escape_string($name);

    $email=$_POST['email'];
    $email=mysql_real_escape_string($email);

    $comment=$_POST['comment'];
    $comment=mysql_real_escape_string($comment);

    $articleId=$_POST['articleId']; 
    $articleId=mysql_real_escape_string($articleId);

    if(!empty($email)){
            $lowercase = strtolower($email);
    }

    $result = mysql_query("INSERT INTO comments(name,email,comment,articleId) VALUES ('$name','$email','$comment','$articleId')");

    if($result){
            echo "success";
    } else {
            echo "there were erros" . mysql_error();
    }
    exit;

    ?>

任何帮助,将不胜感激。

4

2 回答 2

4

您必须阻止提交按钮的默认操作:

$(".submit").click(function(e) {
    e.preventDefault();
    alert("clicked");
    ...
});
于 2012-10-05T16:10:15.733 回答
1

如果你想知道它工作正常,你需要从 process.php 中回显一些东西。

例如

echo 'success';
exit; // just incase

然后在你的ajax请求中

success: function(response){
            if (response == 'success') {
                alert("success");
                $(".updating").fadeIn(400);
            }
            else {
                alert('error');
            }
        }

即使您没有回显,process.php 应该仍然可以工作。

如果仍然无法正常工作,请尝试打开错误报告:

error_reporting(E_ALL);
ini_set('display_errors', 'On');
于 2012-10-05T16:35:57.210 回答