<html>
<head>
<script> src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js">
</script>
<script>
/*$(document).ready(function(){
$("p").click(function(){
event.preventDefault()
$.post("/response.php",
{
name: "Donald Duck",
city: "Duckburg"
},
);
});
});*/
$(document).ready(function(){
$("p").click(function(){
event.preventDefault();
$.ajax({
type: "POST",
url: "/response.php",
data: {name: "Donald Duck", city: "Duckburg"},
cache: false,
success: function(html){
$(".make").html(html);
}
});
});
});
</script>
</head>
<body>
<form action="http://localhost/response.php" />
<p><input type="submit" value="Send an HTTP POST request to a page and get the result back"></p>
</form>
</body>
</html>
嗨,我试着学习ajax从客户端(js,html)发送数据到服务器(php),我试过ajax。 post(),但它似乎像从服务器加载数据一样工作,那么如何使数据发送到服务器呢?
答案 0 :(得分:1)
您正在获取未定义的值,因为标准表单提交在您的AJAX帖子之前执行。除了提交按钮之外,您的表单不包含输入,因此不会发送任何数据。您确实将AJAX设置为发布值,但永远不会有机会执行。
$("form").on("submit", function(event) {
event.preventDefault(); // stop standard form submission
var data = { name: "Donald Duck", city: "Duckburg" };
$.post("/response.php", JSON.stringify(data),
function(result) { });
...
});
您可能还需要handle json request in PHP。
答案 1 :(得分:1)
实际上它不是发送数据功能有问题,它是服务器句柄部分有问题,我们不能简单地使用&#34; echo $ _POST [&#39; name&#39;]&#34;得到价值。但是如果我们将它插入到数据库中,它确实存在,即使&#34;未定义的名称&#34;警告仍然存在。 这是服务器处理程序部分
<?php
mysql_connect("localhost","root");
mysql_select_db("PeerPrediction");
$result_set=mysql_query("SELECT*FROM GuessOfNum");
$num_messages=mysql_num_rows($result_set);
$name=$_POST["name"];
$guessnum=$_POST["guessnum"];
$taskid=$_POST["taskid"];
$effort=$_POST["effort"];
$query=mysql_query("INSERT INTO GuessOfNum(name,guessNum,taskid,effort)values('$name','$guessnum','$taskid','$effort')");
if($query){
echo "Your comment has been sent";
}
else{
echo "Error in sending your comment";
}
?>
答案 2 :(得分:0)
尝试以这种方式使用$.ajax
:
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: "POST",
url: "/response.php",
data: {name: "Donald Duck", city: "Duckburg"},
success: function(html){
}
});
});
});
现在,在您的response.php
中,您拥有以下值:$_POST['name']
等于&#34;唐老鸭&#34; $_POST['city']
等于&#34; Duckburg&#34;。
<强>更新强> 将您的html表单更改为:
<form id="form" />
<p><input type="submit" value="Send an HTTP POST request to a page and get the result back"></p>
</form>
然后尝试更改javascript函数:
$(document).ready(function(){
$("#form").submit(function(){
$.ajax({
type: "POST",
url: "/response.php",
data: {name: "Donald Duck", city: "Duckburg"},
success: function(html){
}
});
return false;
});
});
答案 3 :(得分:0)
您更改脚本代码
<script>
$(document).ready(function(){
$("input[type='submit']").click(function(){
$.ajax({
type:'GET',
url:"http://localhost/response.php",
data: "name=Donald Duck&city=Duckburg",
success:function(data){
/*success data*/
}
});
});
});
</script>
你可以在php中使用echo $ _POST [&#39; city&#39;];和echo $ _POST [&#39; name&#39;];