2017-04-09 12 views
-3

私はphp mvcプロジェクトでAjaxを実装したいと思います。私はajaxを使ってデータベースにユーザを追加したいと思います。ここに私のコントローラfuncitonさphp MVCでAjaxを実装する

<!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ファイル iはユーチューブのチュートリアルに従うことを試みたが、データを挿入することができませんでした、ここに私のindex.htmlページです

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(); 
} 

UPDATE 1:追加さいっぱいのindex.htmlファイル

+1

あなたのPHPで文法エラーが発生しました...質問のコード内の構文ハイライターでそれをはっきりと見ることができます。また、$ ajax url – charlietfl

+0

で使われていないphpファイルへのパスは、?controller = pages&action =このようにしてroutes.phpファイルはリクエストを処理するpage_controllerファイルにリクエストを送ります。 phpのエラー構文については、 'could not'という言葉を削除しましたが、まだデータを挿入することができます –

+1

しかし、あなたはそれがhtmlページだと言いました。あなたのMVCがどのように動作しているか、どのようなフレームワークを使用しているのか、またはサーバ側ルーティングがどのように動作するのかはっきりしない – charlietfl

答えて

0

私は2つのPRを見ます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

あなたはまだ " – charlietfl

+0

も同じ問題です。 –

+1

@charlietflコメントが十分明確ではありませんか? :-) – rickdenhaan

関連する問題