2014-02-17 4 views
0

Я работаю над обновлением DIV с помощью PHP и JQuery. Я тестирую фактический файл, который я буду использовать (.php), и в файле test.html, который я сделал. По какой-то причине файл test.html работает, но файл .php этого не делает.PHP jquery refresh DIV

test.html:

<html> 

<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script type="text/javascript">// <![CDATA[ 
    $(document).ready(function() { 
    $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh 
    setInterval(function() { 
    $('#results').load('content.php'); 
    }, 3000); // the "3000" here refers to the time to refresh the div. it is in milliseconds. 
    }); 
    // ]]></script> 
</head> 

<body> 
<div id="results">Loading users...</div> 
</body> 

</html> 

view_conversation.page.inc.php (часть системы обмена сообщениями):

<html> 

<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script type="text/javascript">// <![CDATA[ 
    $(document).ready(function() { 
    $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh 
    setInterval(function() { 
    $('#list').load('content.php'); 
    }, 3000); // the "3000" here refers to the time to refresh the div. it is in milliseconds. 
    }); 
    // ]]></script> 
</head> 
<?php 



    $errors = array(); 
    $valid_conversation = (isset($_GET['conversation_id']) && validate_conversation_id($_GET['conversation_id'])); 
    if ($valid_conversation === false){ 
      $errors[] = 'Invalid Conversation ID.'; 
    } 
    if (isset($_POST['message'])){ 
      if (empty($_POST['message'])){ 
        $errors[] = 'You must enter a message.'; 
      } 

      if (empty($errors)){ 
        add_conversation_message($_GET['conversation_id'], $_POST['message']); 
      } 
    } 

if (empty($errors) === false){ 
     foreach ($errors as $error){ 
      echo $error; 
     } 
} 


    if ($valid_conversation){ 
      /*if (isset($_POST['message'])){ 
        update_conversation_last_view($_GET['conversation_id']);*/ 
        $messages = fetch_conversation_messages($_GET['conversation_id']); 
      }else{ 
        $messages = array(); 
        update_conversation_last_view($_GET['conversation_id']); 
      } 

    session_start(); 
$_SESSION['messages']=$messages; 
    ?> 

    <a href="index.php?page=inbox">Inbox</a> 
    <a href="index.php?page=logout">Logout</a> 

      <form action="" method="post"> 
        <p><textarea name="message" rows="10" cols="85"></textarea></p> 
        <p><input type="submit" value="Add Message" /></p> 
      </form> 

      <?php 
      //var_dump($messages); 
      if($messages){ 
      ?><html><body> 
      <div id='list'>Loading messages...</div> 
      </body></html><?php 





    } 
    ?> 
    </html> 

Мой вопрос заключается в следующем: почему test.html работает, когда view_conversation .inc.php не делает (кстати, файл content.php просто содержит эхо для целей тестирования)

Пожалуйста, помогите мне.

Заранее спасибо.

+0

Вы получаете какую-либо ошибку при загрузке файла .php после обновления? –

+0

нет, .php совсем не обновляется, он просто показывает исходные сообщения загрузки ... – user3315726

+0

Я также попытался добавить div в начало php, но получил тот же результат – user3315726

ответ

0

session_start(); должен быть в начале вашего файла PHP перед любым выходом. Попробуйте <?php session_start(); ?> в верхней части вашего файла. (перед тегом <html>).

+0

Спасибо за это; это будет очень полезно позже, когда я передам переменную через сеанс. Но на данный момент content.php является только эхо-тестом; – user3315726

+0

Я просто изменил его. Я все равно получаю тот же результат. – user3315726

+0

, но я понимаю, что это определенно важно, когда я на самом деле размещаю правильный контент с использованием переменных из $ _SESSION – user3315726