如何将服务器端信息转换为javascript?

时间:2009-08-04 19:22:53

标签: php javascript jquery frameworks server-side

我不知道如何问这个问题,这就是为什么我要模拟我需要的东西,一些开发人员通过使用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技术实现这个目标?

谢谢, 思南。

  

P.S。这只是一个简单的例子当然我可以在这里硬编码发布网址,或者通过javascript获取位置对象等网址我希望你明白我的意思......

编辑:很抱歉我使用的条款存在混淆,它只是从我的应用程序中获取一些信息并动态地写入我的javascript。我不是指彗星或数据编码等。

我想知道的是如何在javascript文件上使用服务器端数据(如果有任何方法)。就像我的示例中的php方法一样,它只是回显一个来自我的应用程序的字符串。有没有办法通过javascript库或框架来做到这一点,比如你分配vars并在该模板系统中使用它的模板引擎。希望现在更清楚了。

4 个答案:

答案 0 :(得分:1)

我不确定我知道“推”是什么意思...如果它是真实的server push,你应该看看comet服务器......

另外,对我来说还不清楚“纯粹的js技术”是什么......你可以在没有jQuery的情况下做到这一点......但是纯JS,因为主要用于操作DOM的语言当然不够用。你需要类似AJAX的方法......但是有一个关于推送HTML5的提议,但是,是的,this is gonna take some time ......

所以我希望这会有所帮助......但也许你应该澄清一下你的问题,我相信你会得到更好的答案...... :)

格尔茨

back2dos

答案 1 :(得分:1)

=================编辑:新的潜在答案=====================

假设您设法从服务器检索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对象图。

答案 2 :(得分:1)

您可以使用.get.ajax向服务器询问网址(假设您的urls.php将正确处理此问题并返回正确的字符串 - 或JSON,在这种情况下您可能会好好使用.getJSON - 其中包含URL)。例如(当然未经测试):

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

答案 3 :(得分:1)

是的,有一种方法,但它很奇怪。您可以使用jaxer server。它允许您在服务器上运行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);
...