2011-08-22 30 views
0

我是PHP和JQuery的新手。PHP不會迴應anyhting

我有這種非常簡單的PHP功能

function save($data) 
{ 
    $allData = load(); 
    array_push($allData, $data); 
    global $filePath; 
    $fp = fopen($filePath, 'w+') or die("I could not open $filePath."); 
    fwrite($fp, serialize($allData)); 
    echo "{status:\"success\" , result:" . (string)(count($allData) - 1) . "}"; 
    fclose($fp); 
} 

其從盤讀取,聚合數據數組,並返回結果。 和我有這個jQuery代碼:

$jQuery.ajax({ 
      url: serverUrl, 
      type: "GET", 
      data: {method: "save", data: jQuery.param(pData)}, 
      cache: false, 
      success: function (data) { 
       alert("data"); 
      } 
     }); 

現在的事情是,如果我通過在Firefox的URL調用PHP方法,我得到印在屏幕右側,如果我通過jQuery代碼上方調用此方法的結果它會寫入文件但不會返回任何內容,並且我在「響應」選項卡下的螢火蟲中看不到任何內容。我哪裏做錯了?

謝謝。

+1

嗯,什麼是'方法'在你的'數據'中,它是如何相關的在你的php代碼中保存''功能? – zerkms

回答

3

您正在提醒"data"而不是data onsuccess。

嘗試呼應格式正確的JSON:

echo '{"status": "success", "result": "'. (string)(count($allData) - 1) .'"}'; 

然後警報是這樣的:

alert(data.status); 
+0

工作!謝謝! :) –

0

,並在你的PHP使用更安全的方法

$var = array('status' => 'success', 'result' => count($allData) - 1); 
echo json_encode($var); 
+1

'新陣列'在PHP中不正確,只是'陣列' – zerkms

+0

混合C#和PHP和Flash動作,大聲笑 –