在PHP

2016-06-28 59 views
0

我遇到的問題返回信息,就是我有一個表格:在PHP

<form method="POST" action="return.php" > 
    <div class="form_description"> 
     <h2>Production Scheduler</h2> 
     <p>Enter the quantity of a product</p> 
    </div> 

    <p>ET63 <input type="text" name="1"/></p> 
    <p>ET61 <input type="text" name="2"/></p> 
    <p>ET83 <input type="text" name="3"/></p> 
    <p>ET81 <input type="text" name="4"/></p> 
    <p>ET85 <input type="text" name="5"/> </p> 
    <p>ET103 <input type="text" name="6"/> </p> 
    <p>ET153 <input type="text" name="7"/> </p> 
    <p>ET6SCORE <input type="text" name="8"/></p> 

    <input type="submit" name="submit" value="Submit" /> 
</form> 

這很好。一切工作如何我想要它。 name="#"實際上並不是數字,但是隱私已更改。

所以問題是,我想測試以確保我得到的結果和刪除額外的信息,但我不能讓我的PHP運行。這裏是返回的php:

<body> 
<?php 
    for ($x =0; $x > 0; $x++) { 
     if ($_POST[$x] >= 1) { 
      echo $_POST[$x]; 
     } 
    } 
?> 
</body> 

我試過鑄造if ($POST[$x] >= 1)。我在PHP等方面相當新穎(大約一週)。

一切名爲.php

我一個支持PHP服務器

+1

那麼什麼當你運行代碼時會發生什麼? – j08691

+2

開始調試。您應該首先轉儲$ _POST變量的全部內容。 'echo'

' . var_export($_POST, true) . '
';' – SArnab

+2

for循環將不會執行任何操作。 * for x = 0 loop while large than 0 * – Matt

回答

1

你的循環就不會結束,因爲條件總是導致對true上運行它。 您的循環甚至不會啓動,因爲它是以false開頭的。 也許它更改爲類似:

for($x =0; $x < count($_POST); $x++) 
{ 
    if($_POST[$x] >= 1) 
    { 
     echo $_POST[$x]; 
    } 
} 

這使得$_POST元素的循環極限的最大數量。但通常,就像是什麼在評論,我們做什麼檢查$_POST(或實際上任何變量)與使用的var_dump()

該功能顯示結構化信息有關的一個或多個表達式,其中包括它的類型和價值。數組和對象以遞歸的方式遞歸探索,其中值顯示爲結構。

+1

你的循環也不行。它應該是'<' not '>' – Barmar

+0

而且它們不工作,因爲條件導致** false **,不正確。 – Barmar

+0

謝謝@Barmar,更新 – morcen

1

你在你的循環犯了一個錯誤:

for($x =0; $x > 0; $x++) { 
     if($_POST[$x] >= 1) 
     { 
      echo $_POST[$x]; 
     } 
} 

它將在其第一次迭代停止。您要求繼續,而其初始值爲$x > 0。所以第一次迭代,你有if 0 > 0。所以它停止。

你應該嘗試類似的東西:

$limit = count($_POST); 
for ($x = 0; $x < $limit; $x++) { 
    if ($_POST[$x] >= 1) { 
     echo $_POST[$x]; 
    } 
} 

順便說一句,如果你的$_POST的關鍵不是數字,嘗試類似的東西,有foreach

foreach ($_POST as $key => $value) { 
    if ($value != $whatIWantToExclude) { 
     echo $value; 
    } 
} 
+1

'for($ x = 0; $ x> 0; $ x ++){'不是無限的,它永遠不會是_starts_:'$ x = 0',那麼'$ x> 0'(或者'0> 0',這是false)< - - 和'while(false){'一樣。另外:不要使用'count($ _ POST)',鍵是字符串!使用'foreach' –

+0

是的,我剛剛編輯了我的評論。不過謝謝。 – Amitsouko