2017-04-05 4 views
0

IMはOOPアプローチなしでMVCを学び、フレームワークヘルプなしで簡単なCRUDを作成しようとしています。フォームデータをコントローラメソッドに渡す

現在の構造は次のとおりです。

Model : -Post.php 

View : - Index.php 
     - CRUD.php 

Controller : Controller.php 

イムは、しかし、このdoesntの仕事を自分のフォームデータを提出し、その後、コントローラメソッドに渡すために、AJAXを使用したいです。

私形式:

<form class="form-horizontal" method="POST" action="" id="data-form"> 
       <div class="container form-group"> 
        <label class="control-label col-sm-2">Nama:</label> 
        <div class="col-md-10">   
         <input type="text" class="form-control" name="nama" id="nama" placeholder="Masukkan Nama"> 
        </div> 
       </div> 
       <div class="container form-group"> 
        <label class="control-label col-sm-2">MSISDN:</label> 
        <div class="col-md-10">   
         <input type="text" class="form-control" name="msisdn" id="msisdn" placeholder="Masukkan MSISDN"> 
        </div> 
       </div> 
       <div class="container form-group"> 
        <label class="control-label col-sm-2">SMS:</label> 
        <div class="col-md-10">  
         <textarea class="form-control" rows="5" name="sms" id="sms"></textarea> 
        </div> 
       </div> 
       <div class="container form-group">   
        <div class="col-sm-offset-2 col-sm-10"> 
         <button type="button" class="btn btn-primary" name="submit" id="submit">Submit</button> 
         <a href="CRUD.php" class="btn btn-default col-sm-offset-9">Go to CRUD</a> 
        </div> 
       </div> 
      </form> 

私のAjax:

 $(document).ready(function(){ 
     $("#submit").click(function(e){ 

      var postURL = "../Controller/Controller.php/create"; 
      var postNama = $("#nama").val(); 
      var postMSISDN = $("#msisdn").val(); 
      var postSMS = $("#sms").val(); 

      $.ajax({ 
       type: "POST", 
       url: postURL, 
       data: 
       { 
        nama: postNama, 
        msisdn: postMSISDN, 
        sms: postSMS 
       }, 
       success: function(data){ 
        // 
       } 
      }); 
      e.preventDefault(); 
     }); 
    }); 

私のコントローラ:

<?php 

require_once "../Model/Model.php"; 
require_once "../View/CRUD.php"; 


function create(){ 
    $nama = $_POST["nama"]; 
    $msisdn = $_POST["msisdn"]; 
    $sms = $_POST["sms"]; 
    insertData($nama, $msisdn, $sms); 
} 
?> 

私のモデル:

function insertData($name, $msisdn, $sms){ 
    try{ 
     $conn = new PDO('mysql:host=localhost; dbname=crud', 'root', ''); 

     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
    catch(PDOException $e){ 
     echo 'ERROR: ' . $e->getMessage(); 
    } 
    $conn->prepare("INSERT INTO data (nama, msisdn, sms) VALUES (?, ?, ?)")->execute([$name, $msisdn, $sms]); 
} 
+0

あなたがどんな反応を得るのですか?エラー?あなたはシステムが何をしているのか分かりますか? –

+0

IMは警告ボックスに変数を出力しようとしましたが、エラーは発生しません。 私は変数をcontroller.phpのcreate()メソッドに渡す方法を知りません。 –

+0

このURLでcreateメソッドを実行する方法はありません "../Controller/Controller.php/create" –

答えて

0

これを試してみてください:

更新のAjax:

$("#submit").on('click', (function(e){ 

    var postURL = "../Controller/Controller.php?action=create"; 

    $.ajax({ 
     type: "POST", 
     url: postURL, 
     data: $('form#data-form').serialize(), 
     success: function(data){ 
      // 
     } 
    }); 
    e.preventDefault(); 
}); 

更新Contoller:

<?php 

require_once "../Model/Model.php"; 
require_once "../View/CRUD.php"; 

class Controller 
{ 

    function create(){ 
     $nama = $_POST["nama"]; 
     $msisdn = $_POST["msisdn"]; 
     $sms = $_POST["sms"]; 
     insertData($nama, $msisdn, $sms); 
    } 

} 

if(!empty($_POST) && isset($_GET['action']) && $_GET['action'] == ''create) { 
    $object = new Controller(); 
    $object->create(); 
} 

?> 
関連する問題