2015-07-21 112 views
1

嗨,我試圖讓AJAX在服務器上執行代碼,並返回結果:在服務器上執行PHP和AJAX

<script> 
    $(document).ready(function(){ 
     $.post('includes/gallery/gallery.php', function(data){ 
      $('#galleryTab').html(data); 
     }); 
    }); 
</script> 

class Main{ 
public static function generateGallery(){ 
    $path = 'includes/gallery/'; 
    $results = glob($path . '*' , GLOB_ONLYDIR); 
    $dirCount = 0; 
    foreach ($results as $result) { 
     $resultBaseName = basename($result); 
     if ($resultBaseName === '.' or $resultBaseName === '..') continue; 
     echo '<h2>'.$resultBaseName.'</h2>'; 
     if (is_dir($path . '/' . $resultBaseName)) { 
      $dir = $path.$resultBaseName.'/'; 
      $images = glob($dir."*.jpg"); 
      $imageCount = 0; 
      foreach($images as $image) { 
       echo '<div class="galleryImage" id="openImage'.$imageCount.$dirCount.'"><img src="'.$image.'" /></div>'; 
       $imageCount++; 
      } 
     } 
     echo '<br />'; 
     $dirCount++; 
    } 
} 
} 

它不執行服務器上的PHP,請大家幫忙

+0

你檢查的PHP安裝在你的服務器?使用phpinfo()嘗試測試文件並將其上傳到服務器。 –

+0

它返回PHP版本5.5.11。我可以直接運行它時運行任何php文件,但用Ajax請求它只返回html,它不會執行php。 –

+0

好吧試試簡單的文件與測試ajax說mail()來測試它是否有XMLHttprequest問題。 –

回答

1

您提供的代碼是不夠的。您應該將函數的結果作爲數組返回並使用json_encode php函數或任何其他交換格式進行編碼。請參閱下面的說明。

  $returnResult = json_encode($array); 

然後在客戶端使用$ .ajax({})jquery方法。看下面的例子。

$.ajax({ 

     url : url , // <-your url here 
     method : post or get , 
     data : { field: value }, //provide the values you are passing <- 
     dataType: json or html, //data interchange format 
     success : function(data){ 

     console.log(data.value); 

     } 

     }); 

見jQuery的$。阿賈克斯({})文檔這裏Jquery documentation link

+0

嗨Jijo,我已經成功地將數據轉換爲數組並使用json編碼,輸出看起來正確。遺憾的是沒有任何東西正在被記錄到控制檯........ –

+0

你的答案是讓我得出結論,我錯誤地爲generateGallery()函數分配了$路徑......當我使用json你在上面描述的方法,它顯示在控制檯,該字符串是空的,我想轉換爲一個數組.......我然後去看看目錄......他們錯了.... .....我現在覺得很蠢,謝謝你的幫助Jijo –

1

你在那裏定義你的類和它的方法,但是你不會根據你給我們顯示的代碼來調用它。從「main」類調用「generateGallery」方法,它應該工作。

+0

我有它在原來的代碼,道歉不與代碼一起發佈,我打電話給它與:「Main :: generateGallery();」...... 我已經包含在php標籤之外:

測試

。 這出現了,但php標籤內的一切都沒有執行..... –