2011-01-11 7 views
1

私は、MySQL DBからの値で入力を表示し、GET結果に基づいて、dbテーブルを更新し、別のページにフォーム結果を送信する簡単なPHPのフォームがあります

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'] . "></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>"; 

私は:

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

私は任意の値が表示されません。どうしてこれなの?

+0

print_r($ _ REQUEST)とは何ですか? – Tobias

+0

あなたのようにエコーの代わりにHEREDOCS(http://php.net/heredoc)を使用して調べることができます。あなたは引用符やその他のものから逃れる必要がないので、人生をはるかに簡単にします。 –

+0

フォーム入力をループで作成しているので(私の答えを見てください)、データベースから行/レコードのIDを取得するだけです。 – Diablo

答えて

4

を持っていません。

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>"; 
+0

彼は結果をループしています。 2つ以上の行がある場合、同じ名前の2つ以上のフィールドが存在するでしょう。私の答えを確認してください: – Diablo

+0

はい、あなたは正しい名前= "project_no []"は、そのトリックを行う必要があります。 – Aston

3

あなたが入力名を忘れている:

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

あなたが「project_no」によって何を意味するかわからないこのPHPをしない場合。各入力には名前が必要です。

1

あなたの入力は、あなたが「name」属性でパラメータ名を指定する必要が入力フィールドに何name属性

+0

what a div。どうもありがとう! – benhowdle89

+0

答えとしてマークしてください;) – Tobias

+0

8分以内に私は:) – benhowdle89

0

入力にはname=""属性を追加する必要があります。

3

あなたが入力タグに名前を割り当てていないので、それは次のとおりです。

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

上記動作するはずです。

0

過去に私を助けてくれたことは、Firebugの[Net]タブを使用して、Persistオプションを有効にしてブラウザが実際に何を返すかを確認することです。 1つのケースでは、フォームにはフィールド用のエントリが重複していましたが、2番目のエントリは正しい値を送信していませんでした。

0

投稿の種類、または隠し文字をお知らせください。および/またはSQLクエリからデータを返すことを確認します。

0

HTML入力ではname = "project_no"が必要です。

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']; 

    } 
}