使用AJAX请求进行PHP计数
问题描述:
I'm trying to counting a SESSION variable, but i don't want that the user seeing any refreshes.
my problem with the code below is that, it change only ones and then its needed a refresh. How can i do this without any refreshes?
test page:
<?php session_start(); ?>
<script src="../../../common/js/jquery-1.11.2.min.js"></script>
<script src="../../../common/js/jquery.touchwipe.min.js"></script>
<?php
if(empty($_SESSION['counter'])){
$_SESSION['counter'] = 1;
}
$count = $_SESSION['counter'];
?>
<div id="main"><?= $count; ?></div>
<button id="detailed">Link</button>
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click','#detailed',function(){
var count = "<?= $count ?>";
count++;
$.ajax({
type: "POST",
url: "test.php",
data: {countertje: count},
success:function(data){
$('#main').html(data);
console.log(data);
}
});
})
});
</script>
do_ajax.php
<?php
session_start();
$_SESSION['counter'] = $_POST['countertje'];
echo $_SESSION['counter'];
?>
我正在尝试计算一个SESSION变量,但我不希望用户看到任何刷新。
我对下面代码的问题是,它只改变了一个,然后需要刷新。 如何在没有任何刷新的情况下执行此操作? p>
测试页:
&lt;?php session_start(); ?&gt;
&lt; script src =“../../../ common / js / jquery-1.11.2.min.js”&gt;&lt; / script&gt;
&lt; script src =“。 ./../../common/js/jquery.touchwipe.min.js"></script>
&lt;?php
if(empty($ _ SESSION ['counter'])){\ n $ _SESSION ['counter'] = 1;
}
$ count = $ _SESSION ['counter'];
?n&gt;
&lt; div id =“main”&gt;&lt; ?= $ count; ?&gt;&lt; / div&gt;
&lt; button id =“detailed”&gt;链接&lt; / button&gt;
&lt; script type =“text / javascript”&gt;
$(document).ready( function(){
$(document).on('click','#detailed',function(){
var count =“&lt;?= $ count?&gt;”;
count ++;
$ .ajax({
type:“POST”,
url:“test.php”,
data:{countertje:count},
success:function(data){
$('#main') .html(data);
console.log(data);
}
});
})
});
&lt; / script&gt;
code>
do_ajax.php p>
&lt;?php
session_start();
$ _SESSION ['counter'] = $ _POST [ 'countertje'];
echo $ _SESSION ['counter'];
?&gt;
code> pre>
div>
答
<script type="text/javascript">
var count = "<?= $count ?>";
$(document).ready(function(){
$(document).on('click','#detailed',function(){
count++;
$.ajax({
type: "POST",
url: "test.php",
data: {countertje: count},
success:function(data){
$('#main').html(data);
console.log(data);
}
});
})
});
</script>
count
should be a global variable
答
Something you could use in javascript
var count = $('#main').val();
instead of following :
var count = "<?= $count ?>";
Writting PHP code inside javascript isnt good idea!