1

嗨,我的问题是关于问题是如何解决的......一个朋友有一个 html 代码,如:

<div id="result">
    <script type="text/javascript">
        function selectColor(value){
            return "#319336";
        }
    </script>
</div>

并在结果中使用 jQuery .load() 调用调用一个 PHP 文件,该文件带有一个发送这样的 JavaScript 函数的函数

<?php
    function returnFuntion(){
        return '<script type="text/javascript">
            function selectColor(value){
                switch(value){
                    case "a":
                        return "#000000";
                        break;
                    case "b":
                        return "#FFFFFF";
                        break;
                    default:
                        return "#319336";
                }
        }</script>';
    }
?>

我不知道这是如何工作的,但适用于所有浏览器,我的朋友说“它可以工作,别担心”。发生什么了?为什么 JavaScript 能识别新代码而不是旧代码?这是正确的方法吗?最初的问题是 JavaScript 函数返回必须随着从 PHP 获得的 MySQL 值而改变。

4

4 回答 4

1

这些是函数声明,解析器总是在读取任何代码之前读取这些声明。

因此,当定义第二个函数时,第一个函数被简单地覆盖

  function a(){

        alert('Hello');
    }

    function a(){

       alert('Second Function !!');
    }

    a(); // Call-- 

小提琴

于 2012-10-23T17:05:02.400 回答
0

理想情况下,两个脚本都应该可以完美运行,但第一个确实不是在 div 中编写 javascript 的好方法。如果它不起作用,可能是因为该函数在加载之前就被调用了。第二个很好,因为 php 正在格式化该 javascript 并准备好打印在您页面的某个位置。要记住的关键是首先应该加载/打印函数,然后调用它以避免任何错误。

于 2012-10-23T17:05:30.207 回答
0

@luismy,最好在服务器和客户端之间交换数据,而不是脚本。我只是好奇你为什么不在客户端实现 UI 逻辑,而在服务器上实现应用程序逻辑?特别是对于这个示例,甚至进行 XHR 调用都没有任何意义。

于 2012-10-23T17:10:33.910 回答
0

如果您正在加载 JavaScript,请使用getScript()

让 php 代码像编写外部文件一样返回内容。确保也设置内容类型。

于 2012-10-23T17:32:53.217 回答