2013-08-12 15 views
0

Я не могу понять, почему это не работает! Идея заключается в том, что код должен запускать php-скрипт на другой странице, который проверяет наличие изменений в состоянии БД. Затем он вернет строку, которая обновит страницу CURRENT.Код PHP/Ajax не работает

(внешний) PHP:

$QgetShift = mysql_query("SELECT * FROM shifts"); 

$num = mysql_num_rows($QgetShift); 

if(isset($_POST['ajax'])) { 
    if(isset($_SESSION['data'])) { 

     $data = $_SESSION['data'];  
     if($data != $num){ 
      $_SESSION['data'] = $num; 
      echo "WORKING"; 
     } else { 
      echo "NOT WORKING"; 
     } 
    } else { 
     $_SESSION['data'] = $num; 
     echo "started"; 
    } 
} 

HTML:

<button type="button" id="clickMe">Click Here</button> <br /> 
       <div id="data"></div> 

Javascript:

$('#clickMe').click(function(){ 
    $.ajax({ 
    method: 'post', 
    url: 'function.php', 
    data: { 
     'ajax': true 
    }, 
    success: function(data) { 
     $('#data').text(data); 
    } 
    }); 
}); 

Может кто-нибудь сказать мне, если есть ошибка где-нибудь?

+1

к не работает, вы имеете в виду, что вы получаете выход «не работает», или, что сценарий не в состоянии бег? –

+0

Вам нужно использовать «GET», а не «POST». – Trendy

+3

@Trendy Здесь нет ничего плохого в использовании POST. – cmbuckley

ответ

0

Wow Я тупой, ссылка была неправильно:/

+0

Если какой-либо из ответов помог вам найти решение самостоятельно, пожалуйста, поддержите его и выберите правильный ответ. В противном случае, после периода ожидания, выберите правильный ответ. – gibberish

1

Эта строка в функции AJAX успеха неверен ($('#data').text(data);): Попробуйте вместо этого:

success: function(data) { 
    $('#data').html(data); 
} 

Еще одна вещь, чтобы попытаться это добавить это в верхней части файл functions.php (только для одного теста) :

<?php 
    echo 'Received OK from PHP'; 
    die(); 
+0

Странно ... это не тянет в эту строку. Есть идеи? – Axschech