这是一个奇怪的错误。我可以通过Ajax添加记录,但控制台显示此类错误:
Error Number: 1048
Column 'name' cannot be null
INSERT INTO `feedback` (`name`, `email`, `message`, `timecreated`) VALUES (NULL, NULL, NULL, 1407084933)
Filename: /var/www/html/storyline/models/feedback_model.php
Line Number: 10
这是结构:
$(document).ready(function() {
$('#feedbacksubmit_button').click(function(){
var name = $('#feedbackname').val();
var email = $('#feedbackemail').val();
var message = $('#feedbackmessage').val();
if(message == ''){
$('#feedbackmessage').next().show();
return false;
}
var formvalues = {
feedbackname : name,
feedbackemail : email,
feedbackmessage : message,
};
$.ajax({
type: "POST",
url: "<?php echo base_url();?>feedback/add",
data: { values: formvalues },
success: function(response) {
alert("Thanks for your Feedback!");
},
error: function(error) {
alert(error);
}
});
});
});
feedback.php
控制器:
<?php
class Feedback extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('feedback_model');
}
public function add() {
$values = $this->input->post('values');
$timecreated = time();
$name = $values['feedbackname'];
//echo $name;
$data = array(
'name' => $name,
'email' => $values['feedbackemail'],
'message' => $values['feedbackmessage'],
'timecreated' => $timecreated,
);
$data['status'] = $this->feedback_model->new_feedback($data);
}
}
feedback_model.php
:
class Feedback_model extends CI_Model {
public function __construct() {
$this->load->database();
}
public function new_feedback($values) {
$this->db->insert('feedback', $values);
}
}
HTML表单代码:
<form method="post">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Name</span>
<input class="form-control" placeholder="Your name" name="feedbackname" id="feedbackname" type="text" />
</div>
</div>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">@</span>
<input class="form-control" placeholder="Your email address" name="feedbackemail" id="feedbackemail" type="text" />
</div>
</div>
<div class="form-group">
<label class="control-label" for="feedbackmessage">Message</label>
<div class="input-group">
<textarea class="form-control" name="feedbackmessage" id="feedbackmessage" rows="8" cols="52" placeholder="The message you want to send to us."></textarea>
<span class="form_error">Please enter your message</span>
</div>
</div>
<button type="submit" class="btn btn-primary" id="feedbacksubmit_button">Submit</button>
</form>
这些值已正确插入数据库中,但我仍然在控制台中收到该特定错误,指出提交的值为NULL
。
编辑:
通过在调试器中插入断点,我获得成功的警告框,而如果调试器没有打开,我会收到错误的警告框。
在这两种情况下,值都会插入数据库中。
表格结构:
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | YES | | NULL | |
| email | varchar(50) | YES | | NULL | |
| message | text | YES | | NULL | |
| timecreated | int(11) | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
答案 0 :(得分:0)
首先尝试&#34;添加&#34;从形式直接起作用。如果有效,请检查ajax中的代码。通过这种方式,您可以检查错误是否在php或ajax中。