2

この繰り返し&繰り返しの質問で申し訳ありませんが、解決方法が本当にわかりません。

1 つのボタンと 2 つの text_input がありました。このボタンをクリックすると、問題がなければアラートが表示され、「成功」が表示されますが、残念ながら、何も表示されません。

なし !!

どうしてか分かりません :(

助けてください、お願いします......スタックオーバーフローまたはcodeigniterに関する他のWebサイトで多くのチュートリアルを読みましたが、私の問題を解決できるものは何も見つかりません。教えてください。

以下は非常に単純なフォームです

ファイル名: test.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>test </title>
    <link rel="stylesheet" href="<?=base_url("/css/bootstrap.css")?>">
    <link rel="stylesheet" href="<?=base_url("/css/basic.css")?>">
    <script src="<?=base_url("/js/jquery-1.10.2.min.js")?>"></script>
    <script src="<?=base_url("/js/bootstrap.js")?>"></script>
    <script src="<?=base_url("/js/practice.js")?>"></script>
</head>
<body>

<div style="margin:19px">
    <form id="test_form" method="post">
    USER:<input id="num" name="num" type="text" ><br> 
    NAME:<input id="name" name="name" type="text" ><br>
    <input id="submit" name="submit" class="btn" type="submit" value="save"> 
    </form>
</div>
</body>
</html>

jQuery Ajax() でこのフォームにデータを送信したいのですが、JSファイルは以下です

ファイル名: practice.js

$(document).ready(function(){
    $("#test_form").submit(function(e){     
        e.preventDefault();

        var tdata= $("#test_form").serializeArray();

        $.ajax({
            type: "POST",
            url: "http://localhost/index.php/static_data/test_add",
            dataType: json, 
            data: tdata, 

            success:function(tdata)
            {
                alert('SUCCESS!!');
            }
        });
    });
});

以下は私のコントローラーでした

ファイル名:static_data

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Static_data extends CI_Controller {

  public function test()
  {
    $this->load->view('test');      
  }

  public function test_add()
  {
    $this->load->model("paper");
    $this->paper->test_add();
  }
}

以下のこのファイルは私のモデルセットでした

ファイル名:paper.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
class Paper extends CI_Model {  

  function __construct()  
  {  
    parent::__construct();  
  }  

  function test_add()
  {  
    $this->load->helper('form');
    $this->load->helper('html');
    $this->load->database();
    $tdata = array(
      'num' =>  $this->input->post('num'),
      'name' =>  $this->input->post('name'),
    );
    $this->db->insert('test_table',$tdata);  
  }      
}  
4

3 に答える 3

1

以下に示す単純な ajax リクエストで、この問題を簡単に解決できると思います。

$(document).ready(function(){

    $("#test_form").on("submit", function(event){
         event.preventDefault();
         $.ajax({
              url : base_url+"static_data/test_add",
              type : "post",
              data : $("#test_form").serialize(),
              dataType : "json",
              success(data)
              {
                  alert('SUCCESS!!');
              } 
         });
    });

});

それを行う前に、head set のビュー ファイル (test.php) に次のように記述してください。

<script>
    var base_url = "<?php echo base_url(); ?>";
</script>
于 2014-02-23T11:40:22.127 に答える
0

これを試して :

Practice.js

$(document).ready(function(){

    $("#test_form").submit(function(e){     
        e.preventDefault();

        var tdata= $("#test_form").serializeArray();

        $.ajax({
            type: "POST",
            url: 'http://localhost/[CodeIgniterDirectory]/index.php/static_data/test_add',
            data: tdata, 

            success:function(tdata)
            {
                alert('SUCCESS!!');
            },
            error: function (XHR, status, response) {
               alert('fail');
            }

        });
    });
});
于 2013-11-10T16:07:16.417 に答える