-1

我不确定我想做的事情对你是否有意义,但你去吧。我正在尝试执行 if / else。这是我想做的一个例子。

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

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

4

4 回答 4

4

不,您不能按照您建议的方式使用 JS 执行 PHP 代码。PHP 在您的服务器上编译并提供服务,然后通过网络发送。这就是网站“前端”和“后端”组件背后的理念。

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

希望有帮助!

于 2013-08-06T21:57:26.500 回答
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>
于 2013-08-06T21:43:41.650 回答
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>
于 2013-08-06T22:37:00.197 回答
-2

是的可能。

<?php if(true):?>
<script>
//js  goes here
</script>
<?php else:?>
//other
<?php endif?>
于 2013-08-06T21:44:04.460 回答