<html>
<head>
</head>
<body>
<input type="text" id="inputtext"><input type="button" value="submit "id="submit">
<br>
<div id="response">
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="thescript.js"></script>
</body>
</html>
$(document).ready(function(){
$("#submit").click(function(){
var dataString = $("#inputtext").val();
$.ajax({
type: "POST",
url: "greet.php",
data: dataString,
success: function(){
$("#response").load("greet.php");
}
});
});
});
<?PHP
print "hello " . $_POST['dataString'];
?>
在加载greet.php时,应显示在文本字段中输入的值。不确定为什么它不起作用
答案 0 :(得分:1)
$ .ajax已经返回“你好”。然而,当您的页面收到它时,它会再次查询“greet.php”。
$.ajax({
type: "POST",
url: "greet.php",
data: dataString,
success: function (response) {
$("#response").append(response); // or .html(response)
}
});
或更好:使用.post();
$.post("greet.php", dataString, function (response) {
$("#response").append(response); // or .html(response)
});
最后,您的提交按钮是否在表单中,并且您处理点击事件,如果您想留在页面上而不是重新加载,则您应该阻止表单在点击时提交。
$("#submit").click(function(event) {
event.preventDefault();
// stuff
return false;
});
答案 1 :(得分:1)
我认为它可以更容易:
$("#submit").click(function()
{
var dataString = $("#inputtext").val();
$.ajax({
type: "POST",
url: "greet.php",
data: "dataString=" + dataString,
success: function(result){
$("#response").html(result);
}
});
});
对于php:
<?PHP
if(isset($_POST["dataString"]))
{
echo "hello " . $_POST['dataString'];
}
?>
答案 2 :(得分:1)
我认为您没有正确调用jQuery .ajax
。来自jQuery文档:
要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。
你希望以密钥/值格式传递params作为数据,而不仅仅是数据。这样你可以在php中访问它,因为'dataString'代替传递data: "dataString=" + dataString
。
答案 3 :(得分:0)
$(document).ready(function(){
$("#submit").click(function(){
var dataString = $("#inputtext").val();
$("#response").load("greet.php"+ dataString );
});
});
答案 4 :(得分:0)
试试这个;
$("#response").load("greet.php", {dataString : dataString});