2013-06-20 99 views
1

我有一個PHP文件,其中包含用於回顯某些HTML的代碼。我想提供PHP文件,可以這樣進行一些終端用戶:在HTML頁面中放置PHP結果

<?php include 'file.php'; ?> 

不幸的是我的用戶將具有例如index.html,然後這是不行的。我不想讓我的用戶把那裏的HTML文件改成PHP。另一種方法是修改.htaccess文件:

<Files index.html> 
AddType application/x-httpd-php .html 
</Files> 

我不想問這個問題。那麼我的其他選擇是什麼?是否可以在HTML文件中顯示回顯結果?也許在一些Javascript的幫助下?

+0

你可以使用一些JS代碼來從服務器獲取數據的HTML頁面加載後。例如'$('#body')。load('file.php')'使用jquery。 –

+0

忘了所有關於AJAX .... :) – Youss

回答

7

你可以用AJAX來做到這一點。這可能看起來有點具有挑戰性,但它比許多人想象的要簡單得多。事實上,這很容易。

阿賈克斯去在你的JavaScript代碼,如下所示:

$('#stSelect').change(function() { 
    var sel_stud = $(this).val(); 
    //alert('You picked: ' + sel_stud); 

    $.ajax({ 
     type: "POST", 
     url: "your_php_file.php", 
     data: 'theOption=' + sel_stud, 
     success: function(whatigot) { 
      alert('Server-side response: ' + whatigot); 
     } //END success fn 
    }); //END $.ajax 
}); //END dropdown change event 

要注意,從PHP文件中的數據進入你的HTML文檔在成功函數的AJAX調用的,並且必須在那裏處理。這就是您將接收到的數據插入DOM的位置。

例如,假設您的HTML文檔具有id="myDiv"的DIV。從PHP的數據插入到HTML文件,將行:alert('Server-side response: ' + whatigot);本:

$('#myDiv').html(whatIgot); 

的Presto!您的DIV現在包含從PHP文件回顯的數據。


阿賈克斯可以通過改變一個控件的值只在文件負載被觸發(如上面的例子),或:

$(function() { 
//alert('Document is ready'); 

    $.ajax({ 
     type: "POST", 
     url: "your_php_file.php", 
     data: 'Iamsending=' + this_var_val, 
     success: function(whatigot) { 
      //alert('Server-side response: ' + whatigot); 
     } //END success fn 
    }); //END $.ajax 
}); //END document.ready 

this example的想法它是如何工作的。

注意上面的例子使用jQuery,因此需要在你的頁面的標籤此引用:

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
</head> 
+0

非常感謝你 – Youss

+0

+ +1一個很好的解釋。 – Herbert

1

這將用被調用的url的內容替換html頁面的主體。

$('body').load(url,[data],[callback]); 
1

如果他們可以添加JavaScript,Ajax請求應該做的工作......

<script> 
var req = new Request({ 
    method: 'get', 
    url: 'file.php', 
    onRequest: function() { // loading image  
    }, 
    onSuccess: function(response) { 
     document.getElementById("destination").innerHTML = response; 
    } 
}).send(); 
</script> 

他們還需要一個div的代碼來獲得:

<div id="destination"></div> 
+0

非常感謝:) – Youss

+0

不客氣:) – Sergio