繁体   English   中英

从PHP执行jQuery代码

[英]executing jquery code from php

$("#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是服务器端代码,因此如果可能,我没有找到任何好的示例

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

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

如果您更改了click事件处理程序,则该操作仍然有效。 这意味着您以后无需在2个地方进行任何更改。

如果我理解这个问题,如果$ok为true,则希望在页面加载时执行一些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在任何地方都没有定义,所以无法使用。

我将设计代码,以便在呈现html时可以添加类并直接设置z-indexes,但是如果要使用jquery进行处理,则jsut将它们包装在<script>$(document).ready(function({});因此将在dom准备就绪时执行它们。

例如。

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(); 设置在之前的某个位置,因为它也在示例中。 现在将其删除。

发生的情况是在执行PHP脚本时,如果$ ok计算为true,则您的jquery代码将包含在生成的文档中,如果没有,则将其省略。 但是,目前尚无任何事件,因此以下行将不起作用。

e.stopPropagation();

但是,正如jdwire所建议的那样,您可以将javascript包装在script标签中,并以这种方式执行它,而不会被事件触发。 所以...像这样:

<?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
}
?>

您可以echo了在代码<script/>标签,它会运行如JavaScript,或者用你的代码,只需将它标记之间,它应该罚款:)

但是您不能“现场”进行此操作。 仅在一次请求页面时。

您也可以通过这种方式将PHP变量传递给javaScript。 我认为这要干净得多。

$check = 1;

?>

...

<script type="text/javascript">

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

    ...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM