【发布时间】:2012-01-20 15:51:48
【问题描述】:
在我的 index.php 文件中,我有一个 AJAX 函数,它将调用另一个 php 文件中的函数,该函数应该增加一个数字并在我调用 AJAX 函数时返回它。
问题是数字永远不会改变。我尝试了很多不同的东西。不幸的是,太多了,无法一一列举。
我的 index.php 文件。
<?php
session_start();
$_SESSION['views'] = 0;
?>
<?php include 'blogFunction.php';?>
<script type="text/javascript">
function doSomething()
{
$.ajax({ url: '/blogFunction.php',
data: {action: 'test'},
type: 'post',
success: function(output) {
document.getElementById("blog").innerHTML = '';
document.getElementById("blog").innerHTML = output;
}
});
}
</script>
<div class ="blog" id = "blog"></div>
我的 blogFunction.php
<?php
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'test' : blogreturn();break;
}
}
function blogreturn(){
$_SESSION['views'] = $_SESSION['views']+ 1;
echo "THIS number is:" .$_SESSION['views'];
}
?>
现在,每当我点击调用 AJAX 函数的按钮时,输出始终为“1”。
任何帮助表示赞赏。
直播代码:here
到目前为止,感谢大家的帮助。一个问题解决了,又出现了一个新问题。
扩展功能:
session_start();
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'test' : blogreturn();break;
}
}
function blogreturn(){
$request_url = "http://retrovate.tumblr.com/api/read?type=posts";
$xml = simplexml_load_file($request_url);
$a = $_SESSION['views'];
$b = $_SESSION['views'] +4;
echo "A = ".$a;
echo "B = ".$b;
$_SESSION['views'] = $_SESSION['views']+ 1;
for ($i = $a; $i <= $b; $i=$i+1) {
echo '<h2>'.$xml->posts->post[$i]->{'regular-title'}.'</h2>';
echo '<br>';
echo $xml->posts->post[$i]->{'regular-body'};
echo '<br>';
echo '<br>';
}
}
这里的问题是,我在my site单击了一次我的按钮
它会增加并显示新内容。我再次单击它会恢复为 0。如果我快速单击该按钮多次,它似乎可以工作。似乎 chrome 有这个问题,而 Firefox 没有。
【问题讨论】:
-
你为什么使用 vanilla DOM 方法来输出 AJAX 而不是 jQuery 的结果?
$('#blog').text(output);