douzhouqin6223
2016-10-04 18:16
浏览 61

从php脚本调用JavaScript函数

I'm wondering if this is something I can do. I have a PHP script that needs to call a function that I define in my main index.php.

Inside my other PHP file I have:

echo "<script>ShowModal('PopUpNameItem','closeNameItem');</script>";

and inside my main index.php I have that function. how do I actually call this from a seperate script? Normally you would use something like this but since my files are .php can I do this?

<script type="text/javascript" src="ajax.js"></script>

and this is the function I'm trying to call

function ShowModal(popup, closeBtn) {
        var modal = document.getElementById(popup);
        var span = document.getElementsByClassName(closeBtn)[0];
        modal.style.display = "block";
        span.onclick = function() {
            modal.style.display = "none";
        }
        if (modal != "PopUpNameItem") {
            window.onclick = function(event) {
            if (event.target == modal) {
                modal.style.display = "none";
            }
        }
    }
}

图片转代码服务由CSDN问答提供 功能建议

我想知道这是否是我可以做的。 我有一个PHP脚本需要调用我在主index.php中定义的函数。

在我的其他PHP文件中我有:

  echo“&lt; script&gt; ShowModal('PopUpNameItem','closeNameItem');&lt; / script&gt;”; 
   
 
 

并在我的主索引中 .php我有这个功能。 我如何从单独的脚本中实际调用它? 通常你会使用这样的东西,但因为我的文件是.php,我可以这样做吗?

 &lt; script type =“text / javascript”src =“ajax.js”  &gt;&lt; / script&gt; 
   
 
 

这是我试图调用的函数

  function  ShowModal(popup,closeBtn){
 var modal = document.getElementById(popup); 
 var span = document.getElementsByClassName(closeBtn)[0]; 
 modal.style.display =“block”; 
 span。  onclick = function(){
 modal.style.display =“none”; 
} 
 if(modal!=“PopUpNameItem”){
 window.onclick = function(event){
 if(event。  target == modal){
 modal.style.display =“none”; 
} 
} 
} 
} 
   
 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongpaocuan7498 2016-10-04 19:54
    已采纳

    Ok. I think can see the clear picture now.

    No. it is not possible. You can not can not call client-side javascript method from server-side PHP script.

    In web application there are to sides:

    • client (in your case its web browser, that works with html/css and javascript + data received from the server)
    • server side that works with whatever (in your case its PHP) and generates the html/css, javascript and data.

    Now, your index.php on the server side is processed by the web server and produces index.html that is being sent by the server to the client. Client opens this file and loads/executes all the scripts,styles that are defined in it. And it creates document structure. All of it is now existing on the client side.

    However, server side does not have a direct link to your client context. So the are two ways to run this method as a result of the server processing.

    1) to send a ajax request to the server, and, based on the result, execute the method.

    2) If you don't want to deal with ajax cal logic, you may do a script insertion approach. How it works, is that when the button is pressed you do something like this:

    var scriptRef = document.createElement('script');
    scriptRef.setAttribute('src','url_to_script.php');
    document.head.appendChild(scriptRef);
    

    What it will do, it will dynamically append a script tag to your document and load script content as a result of your php script output. There you can decide to launch the method or do something else.

    However, script insertion is a bit of a headache and should not be used on a long-running pages (in my opinion), as it actually adds a new script every time you press a button. And its your responsibility to keep track of it and remove it.

    点赞 打赏 评论
  • douangoo48863 2016-10-04 18:38

    As long as you display your functions correctly in JavaScript format You can just call:

    <script type="text/javascript" src="ajax.php"></script>
    
    点赞 打赏 评论

相关推荐 更多相似问题