Javascript不会将任何帖子数据发送到php文件
$(document).ready(function(){
function showComment(){
$.ajax({
type:"post",
url:"process.php",
data:"action=showcomment",
success:function(data){
$("#comment").html(data);
}
});
}
showComment();
$("#button").click(function(){
var name = $("#name").val();
var message = $("#message").val();
var dataString = "name="+name+"&message="+message+"&action=addcomment";
$.ajax({
type:"post",
url:"process.php",
data:dataString,
success:function(data){
showComment();
}
});
});
});
形式:
<form action="" method="POST" enctype="multipart/form-data">
name : <input type="text" name="name" id="name"/>
</br>
message : <input type="text" name="message" id="message" />
</br>
<input type="submit" value="Post" name="submit" id="button">
<div id="info" />
<ul id="comment"></ul>
</form>
PHP
$action=$_POST["action"];
if($action=="addcomment"){
echo "Add comment WORKS!";
}
if($action=="showcomment"){
echo "default";
}
尝试添加这样的行,就像发布addcomment而不是显示一些单词一样,只是为了测试,因为sql请求没有,但php根本没有显示任何响应,就像根本没有发布任何动作一样。
PS。我真的是新的ajax,所以如果可能的话,请给我一个解决方案来解决它。
答案 0 :(得分:0)
您正在使用提交按钮,因此它将使表单提交并重新加载,这将绕过您的ajax,您可以更改您的jQuery以侦听表单提交事件,而不是像这样:
$("form").on('submit', function(e){
// Stop form from submitting
e.preventDefault();
var name = $("#name").val();
var message = $("#message").val();
var dataString = "name="+name+"&message="+message+"&action=addcomment";
$.ajax({
type:"post",
url:"process.php",
data:dataString,
success:function(data){
showComment();
}
});
});
或者只需更改类型=&#34的按钮;提交&#34;输入=&#34;按钮&#34;或用元素替换它。
答案 1 :(得分:0)
您正在使用提交按钮作为Dontfeedthecode提到。您的表单没有任何操作,因此它是自我发布的。我已将动作和id添加到html表单和隐藏字段以传递操作。现在javascript序列化表单并将其发送到process.php。
$(function () {
$("#my-form").on("submit", function (e) {
$("#action").val("addcomment");
$.ajax(
{
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (data) {
showComment();
}
});
return false;
});
});
<form action="process.php" method="POST" id="my-form" enctype="multipart/form-data">
<input type="hidden" id="action" name="action" value="" />
name : <input type="text" name="name" id="name" />
</br>
message : <input type="text" name="message" id="message" />
</br>
<input type="submit" value="Post" name="submit" id="button">
<div id="info" />
<ul id="comment"></ul>
</form>