2014-05-10 29 views
0

我在頁面上有一個需要上傳數據的jQuery腳本文件。根據上傳的數據是否有值,PHP頁面將返回當前時間(如果值上傳!isset())或某些sql數據。但是,當我上傳的變量實際上有一個值時,它仍會返回!isset()方法。我做錯了什麼嗎?使用AJAX/PHP上傳和下載變量

AJAX

$.ajax({ 
     url: 'download.php', 
     type: 'REQUEST', 
     datatype: 'json', 
     data: ({ 
      last_downloaded: latestTimestamp, 
      username: username 
     }), 
     success: function (data) { 
     parsedData = $.parseJSON(data); 

      if (!latestTimestamp) { 
       latestTimestamp = parsedData.most_recent; 
      } 
     } 
    }); 

} 

如果latestTimestamp爲空,(應該就是運行這個方法的第一次),然後是最近的時間運行。但是,當它第二次運行時,latestTimestamp有一個值,當我console.log

PHP

<?php 

// Get variables sent 
$last_chat_time = $_REQUEST['last_downloaded']; 
$username = $_REQUEST['username']; 

// Start echoing JSON 

if (!isset($last_chat_time)) { 
    // User did not send last chat time they have, assume they just joined 
    // Get the most recent chat date 
    $SQL  = 'SELECT current_timestamp() as "most_recent" from dual'; 
    $results = mysql_fetch_assoc(mysql_query($SQL)); 
    $last_chat_time = $results; 
    echo '{"most_recent":"' . $results['most_recent'] . '"}'; 
} 
else{ 
    $SQL = 'return some tasty data' 
    $result = mysql_query($SQL); 

    $messages = Array(); 

while ($row = mysql_fetch_assoc($result)) { 
    $messages[] = Array(
     'chat' => $row['chat'], 
     'time' => $row['time_sent'], 
     'username' => $row['username'] 
    ); 
} 

echo json_encode($messages); 

} 

在PHP中,它總是返回第一個如果。但是,如果我直接訪問url頁面並添加?last_downloaded = somedate,它會返回正確的信息。我不正確地做AJAX嗎?

回答

1

對我來說這已進行更新,以type : 'post or get'因爲PHP的$_REQUEST同時處理,所以你可以在你的類型改成這樣:

$.ajax({ 
    url: 'download.php', 
    type: 'post', 

或本:

$.ajax({ 
    url: 'download.php', 
    type: 'get', 
+0

這個固定的問題!非常感謝! –

+0

很高興爲您提供幫助。 – Jai