2017-04-09 111 views
-3

我想在php mvc項目中實現Ajax,我想用ajax將用戶添加到數據庫中。 我試圖按照YouTube的教程,但不能插入數據,這裏是我的index.html頁:在php中實現Ajax MVC

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <!-- Required meta tags --> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1,shrink-to-fit=no"> 

    <!-- Bootstrap CSS --> 
    <link rel="stylesheet" href="views/css/bootstrap.min.css" > 
    </head> 
    <body> 
    <div class="container"> 
    <form> 
     <div class="form-group"> 
     <label for="name">Name:</label> 
     <input type="text" class="form-control" id="name" placeholder="Enter Name"> 
     </div> 
     <div class="form-group"> 
     <label for="email">Email:</label> 
     <input type="email" class="form-control" id="email" placeholder="Enter Email"> 
     </div> 
     <button type="submit" onclick="saveData()">Add</button> 
     </form> 
    </div> 

    <!-- jQuery first, then Tether, then Bootstrap JS. --> 
    <script src="views/js/jquery.js"></script> 
    <script src="views/js/bootstrap.min.js" ></script> 
    <script> 
    function saveData(){ 
     var name=$('#name').val(); 
     var email=$('#email').val(); 
     $.ajax({ 
     type: "POST", 
     url: "?controller=pages&action=add", 
     data: "name="+name+"&email"+email, 
     success:function(msg){ 
     alert('Success,ajotuer fil base'); 
    } 
    }); 
    } 
    </script> 
</body> 
</html> 

,這裏是我的控制器功能可按:

public function add(){ 
    if (isset($_POST['name']) || isset($_POST['email'])){ 
    echo 'error couldnt retreive inputs'; 
    } 
    else { 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    User::save($name,$email); 
    } 
} 

的user.php的文件

public static function save($name,$email){ 
    $db = Db::getInstance(); 
    $req = $db->prepare("INSERT into user(id,name,email) VALUES ('',?,?)"); 
    $req->bindParam(1,$name); 
    $req->bindParam(2,$email); 
    $req->execute(); 
} 

更新1:加滿index.html文件

+1

語法錯誤在您的PHP中...可以清楚地看到它在語法高亮內的問題代碼。也可以通過使用?controller = pages&action = add這種方式將php文件路徑用於$ ajax url – charlietfl

+0

中routes.php文件將把請求發送到將處理請求的文件page_controller。 對於PHP錯誤語法其''不能'字我刪除它,但仍然可以插入數據 –

+1

,但你說這是一個HTML頁面。不清楚你的mvc如何工作,你正在使用什麼框架,或服務器端路由如何工作 – charlietfl

回答

0

我看到兩個公關oblems乍一看:

首先,在您的JS代碼,你拼錯function

success:fucntion(msg){ // <-- fuCNtion should be fuNCtion 
    alert('Success,ajotuer fil base'); 
} 

其次,在你的PHP代碼,你也沒能逃脫在字符串中的引號。如果您在字符串中使用單引號,要麼使用字符串括在雙引號或逃避單引號:

if (isset($_POST['name']) || isset($_POST['email'])){ 
    echo 'error couldn\'t retrieve inputs'; // or: 
    echo "error couldn't retrieve inputs"; 
} 

嘗試這一點,讓我們知道是否可行。

+0

'仍然拼寫錯誤'「function」 – charlietfl

+0

仍然是同樣的問題。 –

+1

@charlietfl評論不夠清楚? :-) – rickdenhaan