【问题标题】:Javascript function not called未调用 Javascript 函数
【发布时间】:2011-11-04 10:06:59
【问题描述】:

我有一个调用 php 方法的 javascript 方法来获取数组“availabletags”中的一些数据。为了证明该函数是否被调用,我添加了

availableTags[0] = "Test";

当我把它放在我的服务器上尝试它时,什么也没有发生。所以我认为javascript函数没有被调用。

<link rel="stylesheet" href="js/demos.css">
<script type="text/javascript">
$(function() {
        var availableTags = new Array(400);
        availableTags[0] = "Test";
        availableTags = JSON.parse(<?php echo '"'.addslashes(include("/php/search_new.php")).'"';  ?>);
        for(var i=0;i<availableTags.length;i++){
            alert("<b>availableTags["+i+"] is  </b>=>"+availableTags[i]+"<br>");
            }
    }
</script>

</head>

<body>
        <input id="searchrecipes" type="text" name="searchrecipes" class="searchinput" style="margin-left: 850px; margin-top: 0px; width:170px; background: #fff url(images/search_icon.png) no-repeat 100%;" placeholder="Suchen..."></input>
        <input type="submit" name="buttonsenden" style="display:none;" value="" width: 5px></input>



</body>
</html>

有人知道我的错误吗?

【问题讨论】:

  • 您不能从 JavaScript 调用 PHP 方法。发生的情况是首先执行 PHP,其结果被插入到您的 HTML/JavaScript 代码中,然后由浏览器解释。查看创建的 HTML,您很可能在生成的 JavaScript 中有语法或其他错误。
  • 您的问题是“某些 PHP 没有生成我期望的 HTML/JS”还是“浏览器没有以我期望的方式处理某些 HTML/JS”?找出哪些,然后向我们展示相关的位(即所有 PHP,您获得的输出,以及它与您的期望或 PHP 的输出(其中没有 PHP)有何不同的解释以及如何解释浏览器不会以您期望的方式做出反应)。不要向我们展示一些 PHP(尤其是缺少位!)然后告诉我们浏览器没有正确处理它。
  • 看来你必须用你真正想做的事情来澄清你的问题。并发布浏览器正在获取的代码,而不是您的 PHP 代码...

标签: javascript html function-call


【解决方案1】:

学习并使用 AJAX 更改您的 javascript 数组,而无需刷新您的页面: AJAX 调用如下所示:

<script type='text/javascript'>
function yourFunction(str, typ)
    {
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                myArray = xmlhttp.responseText; //here is the result
            }
        }
        xmlhttp.open("GET","myFile.php?param1="+str ,true); //here you lunch myFile 
        xmlhttp.send();
    }
</script>

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多