我想提交我的表单与Ajax和不能似乎得到它的工作。我尝试了不同的方法,但数据仍未发送到数据库。下面是我的代码阿贾克斯不发送到数据库
形式
<form action='sendquestion.php' method='post' id="sendQform" enctype="multipart/form-data">
<input type='text' name='searchQuestion' id='searchQuestion'placeholder='Enter your question'><br>
<input type="text" name="user" id="user" value="<?php echo ''.$_SESSION['log_id'].'';?>" style="display: none">
<input type="text" name="qDate" id="qDtae" value="<?php echo date('d/M/Y');?>" style="display: none">
<input type="text" name="status" id="status" value="0" style="display: none">
<label for='sendSearchQuestion'><i class='fa fa-send'></i></label>
<input type="submit" name="sendSearchQuestion" id="sendSearchQuestion" value="Send">
</form>
阿贾克斯
$('#sendQform').submit(function(e) {
e.preventDefault();
var $form = $(this), url = $form.attr("action");
var posting = $.post(url, {searchQuestion: $('#searchQuestion').val(), user: $('#user').val(), status: $('#status').val(), qDate: $('#qDate').val()});
posting.done(function(data) {
alert("success");
});
});
PHP
<?php
session_start();
require_once ("db.php");
$db = new MyDB();
if (isset($_POST['sendSearchQuestion']))
{
$question = strip_tags(@$_POST['searchQuestion']);
$askid = htmlentities($_POST['user'], ENT_QUOTES, 'UTF-8');
$status = strip_tags(@$_POST['status']);
$date = htmlentities($_POST['qDate'], ENT_QUOTES, 'UTF-8');
$sql = $db->prepare("INSERT INTO userquestions (userid, question, status, dates) VALUES (?, ?, ?, ?)");
$sql->bindParam(1, $askid, SQLITE3_INTEGER);
$sql->bindParam(2, $question, SQLITE3_TEXT);
$sql->bindParam(3, $status);
$sql->bindParam(4, $date);
$result = $sql->execute();
if ($result)
{
echo "true";
}
else
{
echo "false";
}
}
?>
这是为什么不工作。谢谢。
[你看了在浏览器的开发者工具的AJAX请求/响应?你有没有在项目中包含jQuery库?是否有任何错误报告?你是在网络服务器上运行的吗?](http://jayblanchard.net/basics_of_jquery_ajax.html) –
'$ _POST ['sendSearchQuestion']'永远不会被设置 –
你做了什么调试?发生什么事?只是说某些“不起作用”并不能真正帮助我们帮助你。 –