通过PHP调用JavaScript函数

时间:2016-04-14 10:18:41

标签: javascript php html

我有一个PHP文件,其中包含从HTML收集的变量。我还有一个JavaScript函数。

我想通过PHP调用JavaScript函数,但我知道这是不可能的,因为PHP代码在JavaScript代码之前。

我把它放在JS代码之前,因为只有当PHP在JavaScript文件之前时,JavaScript才会从PHP代码中收集变量。

如何从PHP调用JS函数并仍然拥有变量? (通过echo'after();'

这是我的index.php:

{{1}}

感谢您的帮助。

编辑:我想在()之后调用该函数。

4 个答案:

答案 0 :(得分:2)

替换

echo '<script>after();</script>';

$hasData = true;

然后你可以做类似

的事情
$(document).ready(function(){
    <?=isset($hasData) && $hasData === true ? 'after();' : ''?>
});

此外,您还会收到一个javascript错误,因为&#39; fullName&#39;没有定义。

答案 1 :(得分:0)

你在$(document).ready块中输出你的after()函数。所以你不能这样称呼它。所以我认为你应该这样做

更改

echo '<script>after();</script>';

echo '<script>$(document).ready(function(){after()};</script>';

并改变

<script>
$(document).ready(function(){
    function after()
    {
    var name = '<?=$name?>';
    var secondName = '<?=$secondName?>';
    var str = "         ";
    if(!str.replace(/\s/g, '').length)
    {
        alert("error");
    }
    else
    {
        $("#pre-text").fadeIn();
        $("#text").html(fullName);
        $("#pre-text").click(function(){
        $(this).fadeOut();
        });
    }   
    }
});
</script>

<script>
    function after()
    {
    var name = '<?=$name?>';
    var secondName = '<?=$secondName?>';
    var str = "         ";
    if(!str.replace(/\s/g, '').length)
    {
        alert("error");
    }
    else
    {
        $("#pre-text").fadeIn();
        $("#text").html(fullName);
        $("#pre-text").click(function(){
        $(this).fadeOut();
        });
    }   
    }
</script>

答案 2 :(得分:0)

在脚本部分,您可以使用PHP代码在()之后运行函数

<script>

<?php
if(isset($_REQUEST['name']) && isset($_REQUEST['secondName']))
{
    echo '<script>after();</script>';
}
?>
//more js code
</script>

PHP基本上是在输出之前将自己的代码放在HTML中。因此,根据您的条件,使用PHP块来打印您想要的内容。

答案 3 :(得分:0)

如果您希望将PHP变量数据发送到JavaScript并对其进行处理,那么就无需从JavaScript PHP函数>

<?php
if(isset($_REQUEST['name']) && isset($_REQUEST['secondName']))
{
    $name = $_REQUEST['name'];
    $secondName = $_REQUEST['secondName'];
}
else
{
    $name = '';
    $secondName = '';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    var name = '<?php echo $name; ?>';
    var secondName = '<?php echo $secondName; ?>';
    var str = "         ";
    if(!str.replace(/\s/g, '').length)
    {
        alert("error");
    }
    else
    {
        $("#pre-text").fadeIn();
        $("#text").html(fullName);
        $("#pre-text").click(function(){
        $(this).fadeOut();
        });
    }   
});
</script>
</head>
<body>
<form method="get">
<p>First name: <input type="text" name="name"></p>
<p>Second name: <input type="text" name="secondName"> <input type="submit"></p>
<p id="pre-text" style="display:none">Your first name is: <span id="text"></span>. You can also click me to hide.</p>
</form>

</body>
</html>

试试这段代码我相信它适合你。