В моем файле index.php у меня есть функция AJAX, которая вызовет функцию в другом php-файле, которая должна увеличивать число и возвращать его всякий раз, когда я вызываю функцию AJAX.Php Sessions и Ajax
Проблема в том, что число никогда не меняется. Я пробовал много разных вещей. Слишком много, чтобы перечислить их всех, к сожалению.
My 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'];
}
?>
Сейчас выход всегда '1', когда я нажал на кнопку, которая вызывает функцию AJAX.
Любая помощь приветствуется.
Живой Код: 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. Если я нажимаю кнопку несколько раз быстро, это, похоже, работает. Кажется, что хром испытывает эту проблему, в то время как Firefox - нет.
Почему вы используете методы ванильной DOM для вывода результата AJAX вместо jQuery? '$ ('# blog'). text (output);' –