从php执行jquery代码

时间:2012-11-06 15:29:06

标签: php javascript jquery

$("#bt-potrdi").click( function(e) {    
        e.stopPropagation();        
        $("#belina").css({"z-index":200}); $("body").addClass("ext");
        $("#vpisok_frame").css({"z-index":250}).fadeIn(200);        
    });

当我点击按钮时,这个jquery代码被执行并且工作正常。我可以在没有点击事件的情况下执行此代码吗?

我想在成功执行某些数据时从php执行此代码,例如

if ($ok) {
?>
//execude ajax code
e.stopPropagation();        
            $("#belina").css({"z-index":200}); $("body").addClass("ext");
            $("#vpisok_frame").css({"z-index":250}).fadeIn(200);    
<?php
}
这可能吗? PHP是服务器端代码,所以如果可能的话,我没有找到任何好的例子

6 个答案:

答案 0 :(得分:4)

与其他建议类似,但这并不依赖于拥有相同代码的2份副本......

if ($ok) {
?>
<script type="text/javascript">
    $(function() {
        $("#bt-potrdi").trigger("click");
    });
</script>
<?php

如果您更改了click事件处理程序,这仍然有效。这意味着您不需要在2个地方进行任何未来的更改。

答案 1 :(得分:2)

如果我理解了这个问题,那么如果$ok为真,你想在页面加载时执行一些javascript。要做到这一点,你应该能够做到这样的事情:

if ($ok) {
?>
<script type="text/javascript">
   //execute ajax code
   $("#belina").css({"z-index":200}); $("body").addClass("ext");
   $("#vpisok_frame").css({"z-index":250}).fadeIn(200);    
</script>
<?php
}

编辑:此外,e.stopPropagation();无效,因为e未在任何地方定义。

答案 2 :(得分:1)

我会设计我的代码,这样我就可以在渲染html时直接添加类和设置z-index,但是如果你想用jquery做那些,jsut将它们包装在<script>和{{1}中所以当dom准备就绪时它们会被执行。

例如

$(document).ready(function({});

修改 好吧,我假设if ($ok) { ?> //execude ajax code <script> $(document).ready(function{ $("#belina").css({"z-index":200}); $("body").addClass("ext"); $("#vpisok_frame").css({"z-index":250}).fadeIn(200); }); </Script> <?php } 之前已经设置了e.stopPropagation();,因为它在问题示例中也是如此。暂时删除它。

答案 3 :(得分:1)

当执行PHP脚本时会发生什么,如果$ ok的计算结果为true,那么你的jquery代码将包含在生成的文档中,如果没有,则省略。但此时,没有事件,因此以下行不起作用。

e.stopPropagation();

然而,正如jdwire建议的那样,你可以将你的javascript包装在一个脚本标签中,并让它以那种方式执行,而不是由事件触发。所以......像这样:

<?php
if ($ok) {
?>
<script type="text/javascript">
    $("#belina").css({"z-index":200}); $("body").addClass("ext");
    $("#vpisok_frame").css({"z-index":250}).fadeIn(200);    
</script>
<?php
}
?>

答案 4 :(得分:0)

你可以echo <script/>标签中的代码,它将作为JavaScript运行,或者使用您拥有的代码运行,只需将它放在标签之间,它就可以了:)

但你不能这样做“活”。仅在请求ONCE页面时。

答案 5 :(得分:0)

您也可以这样做将PHP变量传递给javaScript。我认为它更清洁。

$check = 1;

?>

...

<script type="text/javascript">

    var check = <?= $check; ?>;

    ...

    if (check)
    {
        $("#bt-potrdi").trigger("click");
    }