基于Javascript条件执行PHP代码

时间:2013-08-06 21:40:57

标签: php javascript

我不确定我想做什么对你有意义但是你走了。 我正在尝试执行if / else。这是我想做的一个例子。

<?php
if //Here I would like to execute <script></script> 
{
// Then here execute some php code
}
else
{
//do nothing
}
?>

我不知道这样的事情是否可能。

4 个答案:

答案 0 :(得分:4)

不,你不能像你建议的那样用JS执行PHP代码。 PHP在您的服务器上编译和提供,然后通过网络发送。这是网站“前端”和“后端”组件背后的想法。

但是,您可以使用可以执行任何类型的后端语言的JS(google“AJAX”)向您的服务器发出请求。然后,当你的后端响应时,你可以告诉JS改变DOM,或做你想做的任何事情。

希望有所帮助!

答案 1 :(得分:2)

使用AJAX执行此操作的一个示例是以下jquery代码:

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

if (functionFromOtherFile()) {
    $.get('somephpfile.php', function(data) {
         $("#output").text(data);
    }
} else {
    $.ajax({
        url: "somethingelse.php",
        context: $("#output")
    }).done(function() {
        alert("Request completed.");
    });
}
</script>

"prototype"中,它看起来像是:

<script type="text/javascript">
new Ajax.Request('somephpfile.php', 
{ 
    method: 'get',
    onSuccess: function(data) {
      // do something with data.responseText
    }
});
</script>

答案 2 :(得分:0)

从你的评论我会说可能会有一些误解,Javascript和PHP如何工作或如何互动。

这就像一个名为PHP的比萨饼送货服务:你可以在上面点上火腿比萨饼,但是送货员一到门口,就可以在上面订购菠萝。您可以在家里对披萨做一些改变,就像吃它一样,但是没有菠萝。基本上你的原始帖子就像是“告诉送货员吃比萨饼”,或者以另一种方式说出来 - 它不会起作用。

你可以订购一个新的比萨饼(这将是我的例子),或者雇用另一个送货员来发送你的菠萝片(这将是AJAX方法)。

您不必使用AJAX。您可能想尝试这个(index.php)并检查该行为是否对您有用。

此示例功能:

  • 评估客户端的情况
  • 基本DOM操作
  • 使用隐藏字段将数据传输到服务器后端
  • 评估服务器端传输的数据
  • 无效的HTML标记和其他非最佳做法用法

[...]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Simple JavaScript Example</title>
</head>

<body>
  <h2>This is some test</h2>
  <form action="index.php" method="get">
      <input type="hidden" name="condition" />
      <input type="submit" value="Do something" />
  </form>

  <script type="text/javascript">
    <?php
        if ($_GET["condition"]!="blueconditionistrue"){
    ?>
            document.body.style.backgroundColor = "rgb(0, 0, 255)";
    <?php
        } else { echo "alert('That blue was awful, I fixed it for you');"; }
    ?>

    if (document.body.style.backgroundColor == "rgb(0, 0, 255)"){
        document.forms[0].condition.value = "blueconditionistrue";
    }
</script>
</body>
</html>

答案 3 :(得分:-2)

是的可能。

<?php if(true):?>
<script>
//js  goes here
</script>
<?php else:?>
//other
<?php endif?>