2016-10-05 26 views
0

我有一個簡單的php循環;點在PHP中輸入逗號時將範圍循環結果放入HTML時選擇下拉列表選項

$array = range(1.00, 1.50, 0.01); foreach ($array as $result) 

現在結果總是爲1.1,1.01,1.02,1.03上升到我需要的1.50。但我必須把結果放在一個HTML Select as Values中。

這就是我得到的選擇值;

<select name="discount"> 
<option value="0">No</option> 
<option value="1">1</option> 
<option value="1,01">1,01</option> 
<option value="1,02">1,02</option> 
<option value="1,03">1,03</option> 
and goes on up to 1,50 

正如你所看到的問題是用逗號。 PHP在1之後返回DOT,但當它在選項值和文本內時,它變成COMMAS。

以下是我的代碼和html;

<select name="discount"> 
<option value="0">No Discount</option> 

<?php $array = range(1.00, 1.50, 0.01); foreach ($array as $x) { ?> 
<option value="<?php echo $x; ?>"><?php echo $x; ?></option> 
<?php } ?> 

</select> 

可能是什麼原因?在此先感謝

+0

嘗試更改區域設置。看看[localeconv](http://php.net/manual/en/function.localeconv.php)來檢查你當前的設置和[setlocale](http://php.net/manual/en/function。 setlocale.php)來設置它們。 –

+0

有點看起來像範圍函數中的一個bug,DOCS說他們只需要是正數,這些都是,但似乎在使用小數時會怪怪的。咳咳..將步長設爲1,並將值乘以100? :/唉 –

+0

我已經嘗試過你的代碼沒有得到它的問題,它顯示我的價值在點和文本在點都沒有逗號任何地方,檢查你的PHP版本可能是多數民衆贊成在問題 –

回答

0

編輯..還能去除領先一步從零值..

試試這個包裹的單或雙引號的價值...

<?php $array = range('1.00', '1.50', '.01'); foreach ($array as $x) { ?> 
0

嘗試一下本作的輸出:

<?php echo number_format($x,2,".","");?> 
+0

number_format不工作太。這是一個奇怪的問題。當我回應結果任何地方選擇下拉時,它帶有點不逗號。內部輸入和文本字段也可以。只有在選擇的值和文本中使用逗號。 – hakanerenler

1

描述我測試了你的代碼我沒有問題,你可能會在附件中看到輸出。檢查你的PHP版本可能是多數民衆贊成在這個問題。我的PHP版本是5.6.14。如果您使用任何js文件和庫來增強您的界面,那麼它們是否會導致任何錯誤,因爲有時這些錯誤會導致非均勻行爲。

enter image description here

+0

我剛剛檢查了同樣的事情。代碼是可以的。我正在使用一個帶有bootstrap和許多.js庫的模板。我正在挖他們,看看他們是否會影響它。在具有相同設置的同一臺服務器上,我製作了一個簡單的選擇表單,它可以與點一起工作。 – hakanerenler

+0

是的,這可能是因爲一些錯誤的原因。 js文件和包含的庫可能會在UI中造成一些干擾。 –

相關問題