2016-09-17 5 views
0

私はHTMLテーブルを使ってWebページに表示しているSQLデータベーステーブルを持っています。テーブルの最後の列は、ユーザーがデータを更新するように求める「編集」オプションです。フォームの値をPOSTメソッドでフォームに渡すUpdate

このため、ユーザーが編集するために選択した行IDのデータ値を渡したいとします。

私のディスプレイテーブルには、次のコード

<?php 
    while($row = mysql_fetch_array($fetched_value, MYSQL_ASSOC)) 
     { 
      echo 
       "<tr> 
        <td>{$row['name']}</td> 
        <td>{$row['email_id']}</td> 
        <td>{$row['mobile_number']}</td>; 
        echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>'; 
       echo "</tr>\n"; 
     } 
?> 

<?php $fetched_value = mysql_query($fetch_query, $conn); ?> 

私はさらに使用したい、すべての行の終わりに、私は編集ボタンをしたことに注意してくださいがあります処理。私は(POSTメソッドを介して)ローカルのPHPファイルを呼び出したい

POST編データを受け入れるテーブルを表示してもプレフィルフォームスペースにするためのコードがあるだろうしたupdate-data.phpを、言います。

しかし、POSTメソッドを使用して、このアップデートPHPファイルにデータを渡すことができません。

更新リンクがクリックされた特定のデータ値を渡す方法をお勧めしますか?

+0

あなたのコードには多くの間違ったことがあります。 – Phiter

+0

@PhiterFernandesありがとうございます。しかし、あなたはもう少し具体的になることができますか?私のページにデータが期待通りに表示されています。 (私はmysql関数が廃止されていることを知っています。私はmysqliをスムーズにmysqliに移行するためにのみ使用します)(私は初心者です) – ABor

+2

最初の 'echo'文字列カプセル化を終了しません。それぞれのフィールドに 'submit'ボタンを使うつもりなら、それは送信しているそれぞれのフォームを必要とします。あなたは、編集ページをロードするリンクを使うことができます。 'Edit' – chris85

答えて

0

このようにすることができますecho '<td><button onclick="editData()" type="button" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';。したがって、ajaxによってeditData()のデータを渡すことができます。 Goodluck

1

「FORM」ですべての行をラップしたり、「JS」を使用しない限り、chris85が指摘したように、GETが選択されます。

をGET:

ではなく、ボタンのリンクを生成します。<a href="update-data.php?id={$row[id]}&action=edit">Edit</a>

あなたは彼らがCSSを経由して、ボタンのように見えるようにすることができます。

update-data.phpでフォームをプレフィル化するか、GETクエリを展開して送信することができますが、注意してください:機密データがあれば、それを経由してすべて送信してくださいGET - そうではありません。

FORM

ラップ形式のすべての行:ここ

echo 
       " 
       <form method="post" action="update-data.php"> 
       <input type="hidden" name="name" value="{$row['name']}"> 
       <input type="hidden" name="email_id" value="{$row['email_id']}"> 
       <input type="hidden" name="mobile_number" value="{$row['mobile_number']}"> 
       <input type="hidden" name="id" value="{$row['id']}"> 
       <input type="hidden" name="action" value="edit"> 
       <tr> 
        <td>{$row['name']}</td> 
        <td>{$row['email_id']}</td> 
        <td>{$row['mobile_number']}</td>; 
        echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>'; 
       echo "</tr>\n</form>"; 

は、あなたが送信されたすべての値を持つことになります。 GETオプションと同じように、何をするにしても、あなたは(あなたがエントリを更新するか、またはそれに何かをしたいと思うだろうと仮定した場合)一意の行識別子を送信する必要がありますので、私はそれがほとんどであるとして、あなたが自動インクリメント列「ID」を持っていると仮定しました普通のこと。あなたの一意の行識別子を変更してください。

JS

第三の選択肢は、上記の例のようにフィールドを埋め隠し/ genereatedフォームを送信するJS関数にリンクするあなたのsubmitボタンにonclick属性を追加することです。これは次のようになります。

<?php echo 
       " 
       <tr> 
        <td>{$row['name']}</td> 
        <td>{$row['email_id']}</td> 
        <td>{$row['mobile_number']}</td>; 
        echo '<td><button id="{$row['id']}" name="edit_button" onclick="send(this)" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>'; 
       echo "</tr>\n"; 
?> 
    <scritp> 

    function send(button) { 
     var form = $('    
     <form method="post" action="update-data.php">     
      <input type="hidden" name="id" value="' + button.id + '"> 
      <input type="hidden" name="action" value="edit"></form> 
    '); 
     $('body').append(form); 
     form.submit(); 
    } 
    </scirpt> 

ここでは何か役に立つと思っていますか?私は本当に専門家ではありません:Dまだ:D

関連する問題