2011-01-11 45 views
1

我有顯示輸入與一個MySQL數據庫值和表單結果發送到另一個網頁,其更新基礎上,GET結果的數據庫表一個簡單的PHP形式:

echo "<table>"; 
echo "<tr>"; 
echo "  <th>Project No</th> 
    <th>Customer Name</th> 
    <th>Description</th> 
    </tr>"; 

    while($row = mysql_fetch_array($result)) 
    {  
    echo "<tr>"; 
    echo "<td><input value=" . $row['project_no'] . "></input></td>"; 
    echo "<td><input value='" . $row['cust_name'] . "'></input></td>"; 
    echo "<td><input value='" . $row['description'] . "'></input></td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 
echo "<input type='submit' value='Update' />"; 
echo "</form>"; 

updateprojects.php當我這樣做:

echo $_GET['project_no'].$_GET['cust_name'].$_GET['description']; 

我看不出有任何價值。爲什麼是這樣?

+0

print_r($ _ REQUEST)會引發什麼? – Tobias 2011-01-11 13:45:19

+0

您可能想要使用HEREDOCS(http://php.net/heredoc)進行調查,而不是像您一樣的回聲。他們讓生活變得更加輕鬆,因爲你不必逃避報價和其他東西。 – 2011-01-11 14:00:05

+0

既然你正在創建一個循環的表單輸入(請參閱我的答案)應該爲你工作,只需從數據庫中獲取行/記錄的ID。 – Diablo 2011-01-11 14:03:58

回答

4

在您需要使用「name」屬性指定參數名輸入字段。

echo "<tr>"; 
echo "<td><input name=\"project_no\" value=" . $row['project_no'] . "></input></td>"; 
echo "<td><input name=\"cust_name\" value='" . $row['cust_name'] . "'></input></td>"; 
echo "<td><input name=\"description\" value='" . $row['description'] . "'></input></td>"; 
echo "</tr>"; 
3

你就忘記了輸入名稱:

<td><input name='project_no' value=" . $row['project_no'] . "></input></td> 

如果你不這樣做PHP不知道你說「project_no」的意思。每個輸入都需要一個名稱。

1

你的投入沒有name屬性

0

您需要將name=""屬性添加到輸入中。

3

那是因爲你沒有指定名稱的輸入標籤:

echo "<td><input name=\"project_no\" value=\"" . $row['project_no'] . \"></input></td> 

以上應該工作。

0

東西已經讓我過去,是使用在Firebug的Net選項卡並啓用持續的選項,看看有什麼瀏覽器實際發送回來。在一種情況下,表單有一些字段的重複條目,但第二個條目沒有發送正確的值。

0

請告知提交的類型,或隱藏的文本。和/或驗證你是從SQL查詢返回數據。

0

在我看來,你需要有一個名字=「project_no」在你的HTML輸入。

1

因爲要創建表單輸入一個循環這應該爲你工作(你不能有相同的名稱2個輸入字段),只要抓住行/記錄的ID從數據庫中太:

echo "<form method='get' action='updateprojects.php'>"; 
       echo "<table>"; 
       echo "<tr>"; 
       echo "  <th>Project No</th> 
         <th>Customer Name</th> 
         <th>Description</th> 
        </tr>"; 

       while($row = mysql_fetch_array($result)) 
        {  
         echo "<tr>"; 
         echo '<td><input value="' . $row['project_no'] .'" name="form['.$row['id'].']['project_no']"/></td>'; 
         echo '<td><input value="' . $row['cust_name'] .'" name="form['.$row['id'].']['cust_name']"/></td>'; 
         echo '<td><input value="' . $row['description'] .'" name="form['.$row['id'].']['description']"/></td>'; 
         echo "</tr>"; 
        } 
       echo "</table>"; 
       echo '<input type="submit" name="submit" value="Update" />'; 
       echo "</form>"; 

if(isset($_GET['submit'])){ 
    foreach($_GET['form'] as $id=>$column){ 

     //update your database where id=$id. This is just testing 
     echo 'Row '.$id .' =>'. $column['project_no'].'-'.$column['cust_name'].'-'.$column['description']; 

    } 
}