2012-03-02 32 views
2

我需要添加一個PHP條件裏面一些JavaScript代碼:PHP條件中的Javascript代碼

<script> 
$(document).ready(function() { 

<?php if (some condition) { 
    $('#myID').show(); 
} 

}); 
</script> 

這可能嗎?

+1

嘗試它,找出...或查看任何關於它的相關的問題 – 2012-03-02 15:08:12

+0

那些是什麼條件呢?你不能在javascript代碼之外設置這些條件,而是將它們作爲參數發送給javascript函數? – DG3 2012-03-02 15:09:18

+0

您是否使用PHP腳本呈現JavaScript?那麼這很容易。或者你想在JavaScript中使用PHP命令?爲什麼你不能使用JavaScript條件? – 2012-03-02 15:10:46

回答

3

試試這個

<?php if (some condition): ?> 
$('#myID').show(); 
<?php endif; ?> 
0

取決於文件擴展名。

如果文件擴展名是PHP或其他一些你可能已經放在一起使用.htaccss規則或Apache配置運行PHP代碼),這是很好不是相反。

+2

這並非總是如此,您可以輕鬆配置您的服務器以解析文件擴展名中的「php」。 – shanabus 2012-03-02 15:09:16

+0

@shanabus:我在寫這篇文章,看更新後的答案:) – Sarfraz 2012-03-02 15:09:44

2

當然,如果無論你做你的JavaScript是由PHP執行:

<script type="text/javascript"> 
$(document).ready(function() { 

<?php if(some condition) { ?> 
    $('#myID').show(); 
<?php } ?> 

}); 
</script> 

如果要動態地做到這一點,但是,這將是一個更加美好和更快的解決方案使用Ajax來代替。

+0

你說的是在頁面加載時用AJAX檢查條件,對不對? – 2012-03-02 15:15:38

+0

@JaredFarrish:不,我不是。通過「動態」,我的意思是「經常」。 – Ryan 2012-03-02 15:19:37

0

當然。只是回聲JavaScript:

<script> 
$(document).ready(function() { 

<?php if (some condition) { 
    echo("$('#myID').show();"); 
}?> 

}); 
</script> 
2

當在服務器端執行它將輸出的東西。所以當頁面加載時你將看不到php代碼。

你應該編寫你的php代碼,以便在php腳本執行時呈現JS if條件。

就是這樣。

if (something == <?php outputSomeThingToCompare ?>) { 
    $('#myID').show(); 
} 

或者你也可以試試這個。

<?php if(some condition) { ?> 
    $('#myID').show(); 
<?php } ?> 
1

是的,沒有。

請記住,PHP處理您的頁面服務器端。所以,如果你想動態地改變JavaScript中的內容,那麼是的,你可以做到這一點。

如果您希望PHP在客戶端處理來自JavaScript內部的變量,那麼不行,這是不可能的。

同樣,瀏覽器不知道PHP。

0

,因爲JavaScript已在客戶端但是PHP可以在服務器編譯這是不可能的。您可以通過將其更改爲...

$string = '<script> 
$(document).ready(function() {'; 
if (some condition) { 
$string .= '$('#myID').show();'; 
$string .= '} 

}); 
</script>';'; 

如果發生錯誤,請進行concat code。

1

是的,這是可能的,但你的<?php指令似乎沒有被正確關閉。關閉?>在哪裏?

如果認爲你需要這樣的:

<script> 
    $(document).ready(function() { 
     <?php 
     if (some condition) { 
      echo('$("#myID").show();'); 
     } 
     ?> 
    });        //$(document).ready 
</script> 
0

是的,它是可能的,但在某些情況下這是不可能的,就像當你在ZENCART創建EZpage你不能使用PHP函數這樣。 它取決於你在哪裏使用這段代碼。在zencart中,您只能在定義頁面中使用此代碼,而不能在EZpages中執行此操作。

2

您可以將腳本放入PHP文件中,該文件將呈現您的html並使用PHP檢查條件。

例的index.php

<html><head></head> 
<body> 
Your webpage content here 

<script type="text/javascript"> 
    $(document).ready(function() { 
     <?php if(condition) : ?> 
      $('#myID').show(); 
     <?php else : ?> 
      $('#mySecondID').show(); 
     <?php endif; ?> 
    }); 
</script> 

</body> 
</html> 

如果妳想要把你的JS在一個單獨的文件,你可以這樣做,並初始化PHP文件中某些變量將被渲染你的HTML(例如的index.php或無論什麼模板文件)與上述相同的方式,這樣你可以從你的.js文件中讀取它們。

例子: 的index.php

<html><head></head> 
<body> 
Your webpage content here 
<?php 
    $foo = 'foo'; 
    $bar = 'bar'; 
?> 
<script type="text/javascript"> 
     var foo = '<?php echo (condition) ? $foo : $bar ?>'; 
</script> 

</body> 
</html> 

init.js

$(document).ready(function() { 
    if(foo == 'foo') 
     $('#myID').show(); 
});