php - 使用ajax将Null插入数据库

标签 php jquery mysql ajax codeigniter

PHP 新手。我的 ajax 是成功的,但我不明白为什么 NULL 被发布在我的 MySQL 数据库的每一列中。我的数据库有 4 列(姓名、上限、分配座位、开放座位)。这是一个简单的表格

//Model
class My_model extends CI_Model 
{
    function __construct()
    {
        parent::__construct();
    }    
    public function insert_data()
    {
        $data['name'] = $_POST['tableName'];
        $data['cap'] = $_POST['tableCap'];
        $data['assigned_seating'] = $_POST['assigned_seating'];
        $data['open_seating'] = $_POST['open_seating'];

        $this->db->insert('tables', $data);
    }  
}

//Controller
class Tables extends CI_Controller 
{
  function __construct()
  {
    parent::__construct();
    $this->load->model('My_model');
  }
  public function add()
  {
    $this->load->model('My_model');
    $this->My_model->insert_data();
  }
}

//Ajax
  $(".createTableButton").click(function(e) {
    e.preventDefault();
    var dataToSend = $('#myForm').serialize();
    $.ajax({
      url: "http://localhost/tableseating/tables/add",
      data: dataToSend,
      dataType: 'jsonp',
      method: 'POST',
      success: function()
      {
        console.log("Success");
      },
      error: function()
      {
        console.log("Error");
      }
    });

//HTML
  <form method="post" id="createTableForm" action="">

Table Name<input type="text" id="tableName" name="tableName" /><br>
Seat Cap<br><select type="select" id="tableCap" name="tableCap">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  <option value="13">13</option>
  </select><br>

Table Type<br>
<input type="radio" id="openSeating" name="open_seating" checked="checked" required /> Open Seating<br>   
<input type="radio" id="assignedSeating" name="assigned_seating" required /> Assigned Seating<br><br>
<input type='submit' class='createTableButton btn btn-primary' value="Create"/>
        </form>  

最佳答案

您必须使用 dataType: 'json' ( https://stackoverflow.com/a/4508215/7416478 ),试试这个:

class Tables extends CI_Controller 
{
  function __construct()
  {
    parent::__construct();
    $this->load->model('My_model');
  }
  public function add()
  {
$data = array(
      'name' => $this->input->post('tableName') ,
      'cap' => $this->input->post('tableCap') ,
      'assigned_seating' => $this->input->post('assigned_seating') ,
      'open_seating' => $this->input->post('open_seating') 
   );


   $this->My_model->insert($data);

  }
}

//型号

class My_model extends CI_Model 
{
    function __construct()
    {
        parent::__construct();
    }    
    public function insert_data($data)
    {
      $this->db->insert('tables', $data);
    }  
}

关于php - 使用ajax将Null插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42075253/

相关文章:

jquery - 使用 jQuery 定位 (this) 未按预期工作

mysql - 为什么 SELECT 1 的多行 COUNT(*) 总是 1?

javascript - 使用 jQuery 的 .load 方法从页面返回一个元素

javascript - 在动态生成的元素中覆盖 css

javascript - .JS 格式的 base_url

php - Docker:Nginx 和 PHP 容器:没有这样的文件或目录

mysql - 将同一列从 3 行变成另一个表中的 3 列

mysql 优化 - 连接时不使用主键

php - Laravel 动态更改连接

php - 防止使用 PHP CURL 的远程脚本登录网站