-1

我能做到吗?我试图在条件 php "if" 之后调用 javascript 函数

<script type="text\javascript">
functioncall = (function(id){
   alert(id);
});
</script>

<?php
if(isset($_get['id']){
   echo "<script>functioncall({$_get['id']});</script>";
}
?>
4

3 回答 3

1

在 php 条件下使用 $_GET 而不是 $_get,我已经更正了一些错误,例如脚本标记脚本类型和 PHP $_GET

    <script type="text/javascript">         
        functioncall = (function(id){
               alert(id);
        });
   </script>

 <?php
    if(isset($_GET['id'])){
       echo "<script>functioncall('{$_GET['id']}');</script>";
    }
 ?>
于 2013-11-05T12:04:46.483 回答
1

还是只使用 JS ?

function getQueryVariable(variable) {
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return(false);
}

并且喜欢...

var id = getQueryVariable('id');
if(id) {
    alert(id);
}

信用:http ://css-tricks.com/snippets/javascript/get-url-variables/

于 2013-11-05T12:06:00.343 回答
0

正如 Quentin 所说,您会受到 XSS 攻击。永远不要从 GET 变量(url 变量)中将任何内容放入您的页面中 - 在您的情况下为“id”。

无论如何,如果你想调用一个基于 php 条件的函数,你可以这样做:

<script type="text\javascript">
functioncall = (function(id){
   alert(id);
});
</script>

<?php
if(condition-goes-here){
?>
<script type="text/javascript">
   functioncall(<?php echo 'Put in your php data' ?>);
</script>
<?php } ?>

我还没有检查它,希望它应该工作。如果您的条件返回 false,您的函数调用将不会放入您的页面。

虽然这不是一个好习惯。

于 2013-11-05T12:06:20.410 回答