嗨,我真的不知道从哪里开始,但我只是想学习ajax和php,但我不确定我在这里错过了什么。
我想要这个代码设置,以便每次我点击.test-ajax
它增加一个数字,因为我想要学习它是如何与php一起工作的,我希望在php文件中发生增量。
这是我的jQuery
$(document).ready(function(){
$('.test-ajax').live('click', function(event)
{
$.ajax({
url: 'variableplusone.php',
type: 'post',
data: { offset: 2 },
success: function(offset) {
alert(offset);
}
});
});
});
和我的variableplusone.php
文件…
<?php
$x = add_one();
function add_one()
{
if (isset($_POST['offset']))
{
$offset = $offset;
echo $offset;
}
}
return $x;
只是想知道如何在php文件中获得$offset
的值,然后返回并更新?
function add_one() {
$offset = 0;
if(isset($_POST['offset'])) {
$offset = $_POST['offset'];
$offset++;
}
return $offset;
}
$x = add_one();
die("$x");
显然,您需要检查您的$_POST['offset']是一个数字和其他完整性检查。要将值返回给javascript,只需要回显它,否则就会死亡。在javascript中,您将收到一个值,在您的示例中该值为3(您传递2,PHP将其加1)。
编辑:要"保留"对数字的更改,您有一个选择:要么在客户端使用javascript或cookie记住它,要么在服务器端使用会话变量记住它。
$(document).ready(function(){
myVariable = 2;
$('.test-ajax').live('click', function(event)
{
$.ajax({
url: 'variableplusone.php',
type: 'post',
data: { offset: myVariable },
success: function(offset) {
alert(offset);
myVariable = offset;
}
});
});
});
上面的是在客户机上记住它的一种方法。请注意,如果用户刷新页面,它将重置为默认值(2)。
您可以只执行echo $x;
,然后在成功处理程序中,您将在offset
变量中拥有它。
或者如果您坚持使用更复杂的结构,我建议您查看http://php.net/manual/en/function.json-encode.php和AJAX JSON请求。
你的返回$x没有意义,你的$x是空的,因为你的函数不返回值。我认为你希望你的函数返回$offset,然后在你的PHP文件中回显你的$x。PHP文件的输出将在js中的offset变量中-所以在你的例子中是offset。
像这样的
<?php
$x = add_one();
function add_one()
{
if (isset($_POST['offset']))
{
return $_POST['offset']++;
}
}
echo $x;
?>