这是我使用的代码,当我尝试使用echo $_POST['count'];
时它不起作用
page.php
<input type="submit" value="go" id="more">
<script>
$(function(){
$('#more').click(function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "page.php",
data: {"count":3} //saving number 3
});
});
});
</script>
在page.php中。
<?php echo $_POST['count'];?> //doesn't work.
答案 0 :(得分:1)
$number
。发生这种情况时,大多数(如果不是所有)浏览器都不会发布数据。它未定义,因为变量不存在于JavaScript范围中。我认为你的意思是回应PHP的价值。
试试这个
<?php session_start();
$_SESSION['n'] = 3;
$number = $_SESSION['n'];?>
<input type="submit" value="go" id="more">
<script>
$(function(){
$('#more').click(function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "page.php",
data: {"count":<?php echo($number);?>}
});
});
});
</script>
答案 1 :(得分:0)
$ .ajax从客户端向远程服务器发出请求,然后获得响应。您的page.php脚本需要回显某种类型的响应文本,然后您可以在客户端UI上使用该文本。我想你可能想提交一份表格。看起来像这样:
<?php
session_start();
if(isset($_SESSION['n'])){ $number = $_SESSION['n']; }
else {$number = "<DEFAULT VALUE>";}
?>
<body>
<form name="formname" action="<?php echo "page.php?number=$number ?>" method="post">
<input type="submit" value="go" id="more">
</form>
</body>
然后在page.php上,你可以得到这样的数字变量: $ number = $ _POST ['number'];
*注意:您可以使用$ .ajax()将变量传递给远程脚本。然后,该远程脚本将获取这些变量,并发回响应。以下是有关在JQuery Click here
中使用ajax的一些文档答案 2 :(得分:0)
要在同一页面上回显会话变量,您可以使用命名的隐藏输入并使用$number
变量中的值;即:value="<?php echo $number;?>"
,然后使用<div>
作为要显示在内部的元素。
page.php 将包含:
<?php
echo $_POST['count'];
这是您将在浏览器中加载的代码,并使用jQuery:
<?php
session_start();
?>
<?php
$_SESSION['n'] = 3;
$number = $_SESSION['n'];
?>
<html>
<head>
<script src="//code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function() {
$('#submit-button').click(function (e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'page.php',
data: $("#theform").serialize(),
success: function(d){
$(".result").html(d);
}
});
});
});//end document ready
</script>
</head>
<body>
<div id="some_id">
<form id="theform">
<div>
<input type="hidden" id="count" name="count" value="<?php echo $number;?>" />
</div>
<div>
<button id="submit-button">Submit</button>
</div>
</form>
</div>
<div class="result"></div>
</body>
</html>
答案 3 :(得分:0)
我认为创建formdata对象并向其添加输入或一些私有数据会更容易。之后,将xmlhttp对象发送给服务器。
var formdata = new FormData();
formdata.append("count", 3);
var xmlhttp;
..................
xmlhttp.send(formdata);
$count = $_POST['count'];