2013-08-06 187 views
-1

我不知道我想要做什麼會對你有任何意義,但在這裏你走。 我試圖執行到if/else。這是我想要做的一個例子。執行PHP代碼基於Javascript條件

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

我不知道這樣的事情是否可能。這樣做使用AJAX的

+1

你不能混用PHP和JavaScript。在訪問者獲取html文檔之前執行php,並在訪問者獲取html文檔後執行javascript。 – twinlakes

+0

您可以通過評估客戶端的表達式並將結果發送到PHP服務器... –

+3

從我收集的內容中,OP想要在JavaScript中執行條件並執行PHP代碼。當然,沒有AJAX或類似的東西是不可能的。 – 2013-08-06 21:48:20

回答

2

一個例子是下面的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> 
+1

Arjan直白地試圖解釋的是,這裏的'condition'將是JavaScript計算的結果,然後決定是否執行一個PHP塊 – Bojangles

+0

我實際想要做的是將作爲我的狀況 –

+0

編輯我的答案。不知道這是你想要的。 – 2013-08-06 22:07:37

-2

是可能的。

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

不,問題是關於'if(...)'部分的JavaScript。 – Arjan

4

不,你不能以你建議的方式用JS執行PHP代碼。 PHP將在您的服務器上編譯並提供,然後發送線路。這是網站「前端」和「後端」組件背後的想法。

但是,您可以使用JS(谷歌「AJAX」)向您的服務器發出請求,以執行您想要的任何類型的後端語言。然後,當你的後端響應時,你可以告訴JS改變DOM,或者做任何你喜歡的事情。

希望有幫助!

+0

我會檢查出來。感謝您的幫助 –

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>