我正在从jQuery做一些简单的教程,至于现在我有php脚本的问题,从输入表单发送数据... 我的输入表格如下:
<form method="post" action="submit_to_db.php">
<div id="container">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
<label for="email">E-mail address</label>
<input type="text" name="email" id="email" />
<label for="comments">Any comments</label>
<textarea rows="5" cols="35" name="comments" id="comments"> </textarea>
<br />
<input type="submit" name="submit" id="submit" value="Send costam" />
</div>
</form>
jQuery的脚本是:
<script type="text/javascript">
$(function() {
$('#submit').click(function() {
$('#container').append('<img src="a.gif" alt="Please w8" id="loading"/>');
var name = $('#name').val();
var email = $('#email').val();
var comments = $('#comments').val();
console.log(name, email, comments);
$.ajax({
url: 'submit_to_db.php',
type: 'POST',
data: 'name=' + name + '&email=' + email + '&comments=' + comments,
success: function(result){
console.log(result);
}
});
return false;
});
});
</script>
好的,那么为什么在我点击提交按钮后没有调用动作...我的意思是我的数据库没有改变,没有添加数据,我的浏览器只提供了submit_to_db.php的代码...也许它可以我正在使用XAMPP并且在开始时我必须将我的localhost的端口更改为81 - 在httpd中。 conf I chinge听:80到81 ......
对于这样的n00b问题真的很抱歉,我真的不知道如何继续本教程:(非常感谢您的帮助。
稀释。以防万一 - php文件:
<?php
$conn = new mysqli('localhost:81', 'root', '', 'my_db');
$query = "INSERT into comments(name, email, comments) VALUES (?, ?, ?)";
$stmt = $conn->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param('sss', $_POST['name'], $_POST['email'], $_POST['comments']);
$stmt->execute();
}
?>
答案 0 :(得分:0)
正如评论所指出的那样,在等待ajax时,提交按钮会执行默认操作。 您可以通过选择表单并使用submit方法来获取表单以使用您的函数而不是表单操作,如下所示:
$('form').submit(function(){
/// function goes here
})
答案 1 :(得分:0)
除了有关阻止默认操作的注释之外,您可能还需要对查询字符串进行url编码。否则,表单中写入的内容可能会导致查询字符串出现问题。