2014-03-03 23 views
0

我嘗試這樣做是爲了讓我循環變量我的PHP變量內的jQuery如何打破串並繼續串後

var monthyear[i] = "<?php echo $startmonth_name"+i+" ?>"; 

所以它會顯示這樣的:

var monthyear[i] = "<?php echo $startmonth_name1 ?>"; 
var monthyear[i] = "<?php echo $startmonth_name2 ?>"; 
不能

圖它出來,我不斷收到錯誤:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' 
+7

你不能以你嘗試的方式混合JavaScript和PHP,因爲JS是客戶端,PHP是服務器端。換句話說,在任何JS運行之前,PHP已經完成執行LONG。混合兩者的最好方法是在頁面加載後使用AJAX檢索您需要的PHP值。 –

+0

是的,我有這些工作沒有循環,但我想縮短我的代碼.. – rubberchicken

+0

所以,你需要存儲$ startmonth_name {N}在一個數組和循環在這最後...(沒有JS需要) –

回答

1

循環在JavaScript不會在我的評論中提到的原因,則可以嘗試在PHP代碼中有一個循環,如下所示。

var monthyear[i] = "<?php echo $startmonth_name1 ?>"; 
var monthyear[i] = "<?php echo $startmonth_name2 ?>"; 

更換這跟

<?php 

for($i=0;$i<some_value;$i++) 
{ 
    echo "var monthyear[".$i."] = ". ${'startmonth_name'.$i} .";" 
} 

?> 

注:我沒有測試的代碼。這只是給出一個想法。

0

現在忘了JavaScript。 JavaScript將在稍後的另一臺計算機上執行,可能在幾千公里之外。你得到一個PHP解析錯誤:這意味着你的PHP代碼甚至不運行。爲什麼,在包含在該代碼PHP塊很明顯:

var monthyear[i] = "<?php echo $startmonth_name"+i+" ?>"; 

...是這樣的:

echo $startmonth_name"+i+" 

你可能有這樣的僥倖:

var monthyear[i] = <?php echo json_encode($startmonth_name); ?>+i; 

然而,我建議你記住PHP和JavaScript不會互相影響,也不會共享變量,並相應地重新思考你的邏輯。

1

做到這一點,而不是:

<?php echo "var monthyear["+i+"] = '"+ $startmonth_name[i]+"';"; ?>; 

這些變化對數組的循環使用它們:$ startmonth_name1