簡體   English   中英

如何將服務器端信息轉換為javascript?

[英]How to get serverside information into javascript?

我不知道如何問這個問題,這就是為什么我要模擬我需要的東西,一些開發人員通過用php渲染javascript來滿足我的需求。 一個簡單的示例文件如下所示:

my_javascript_file.php

<?php include "my_class.php"; ?>

$(document).ready(function(){    

  $.ajax({
    url: "<?php $my_obj->post_url(); ?>",
    success: function(){
      alert("Post successful")
    }
  });
};    

輸出以下內容:

$(document).ready(function(){    

  $.ajax({
    url: "/post_handler.php",
    success: function(){
      alert("Post successful")
    }
  });
};    

我的問題到了,有沒有辦法用純js技術來實現?

謝謝,思南。

PS這只是一個簡單的例子,當然我可以在此處硬編碼發布網址,或使用javascript通過location對象獲取網址,希望您能理解我的意思...

編輯:很抱歉,我所使用的術語令人困惑,它只是從我的應用程序中獲取一些信息並動態地寫入我的JavaScript。 我不是說彗星或數據編碼等。

我想知道的是如何在javascript文件上使用服務器端數據(如果有的話)。 就像php方法在我的示例中所做的一樣,它只是回顯來自我的應用程序的字符串。 有沒有辦法通過javascript庫或框架來執行此操作,例如您可以為模板引擎分配vars並在該模板系統中使用它。 希望現在更加清楚。

我不確定我知道“推”的意思是什么...如果它是真正的服務器推入 ,則應查看彗星服務器...

另外,對我來說,還不清楚什么是“純js技術”……您當然可以在沒有jQuery的情況下做到這一點……但是純JS,因為主要用於操縱DOM的語言當然是不夠的……您需要類似於AJAX的方法...但是有人提出了推送HTML5的建議,但是, 這將需要一些時間 ...

所以我希望這會有所幫助...但是也許您應該澄清一下您的問題,我相信您會得到更好的答案... :)

格爾茨

back2dos

================編輯:新的潛在答案=====================

假設您設法從服務器檢索JavaScript數據對象,是否要注入在HTML標記中從客戶端獲得的JavaScript數據?

如果是這樣,您可以查看IBDOM: http ://ibdom.sf.net/

我寫了它,幾年來我們已經在許多站點上生產了它。

=================下面的舊答案====================

因此,您希望“ eventData”成為“某種東西”,JavaScript可以使用它。

我建議先看看PHP中的JSON:

[已刪除不需要PHP中的JSON鏈接]

然后您的PHP代碼可能類似於:

<?php include "my_class.php"; ?>

$(document).ready(function(){    

  $.ajax({
    url: "<?php $my_obj->post_url(); ?>",
    data: <?php json_encode ($my_obj->getData()); ?>,
    success: function(){
      alert("Post successful")
    }
  });
};

因此,這里的想法是,“ data:”字段的值將成為由PHP在服務器上生成的JSON對象圖。

您可以使用.get.ajax向服務器詢問URL(假設urls.php可以正確處理此問題並返回正確的字符串-或JSON,在這種情況下,您也可以將.getJSON-與URL一起使用) 。 例如(當然,未經測試):

$.get("urls.php", { operation: "post_handler" },
    function(data){
        $.ajax({
            url: data,
            data: eventData,
            success: function(){
                alert("Post successful");
            }
        });
    });

是的,有辦法,但是很奇怪。 您可以使用jaxer服務器 它使您可以在服務器上運行javascript。

編輯:

正如我在評論中所說,我不希望您為了實現模板引擎而將額外的js下載到客戶端。 您正在談論的可能是分離或分離。 在這種情況下,您可以在單獨的js文件中包含以下內容:

var myObject = {
var1 : '',
var2 : 0,
init : function(options) {
    var1 = options.var1;
    var2 = options.var2;

    $('#someElem').click(function() {
        // do stuff
        return false;
    };
}

};

然后從您的html頁面中這樣調用它

<head>
<script type="text/javascript">
    var options = {
        var1 : <?php echo "hello" ?>,
        var2 : <?php echo 1 ?>
    }
    myObject.init(options);
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM