2016-07-29 3 views
1

私はResultHRMカラムにユーザがコメントを書くことができるテキストエリアを含むテーブルを持っています。私が知りたいのは、私がSubmitボタンをクリックすると、どのように私のMySQLテーブルNContribにtextareaの内容で正しい行を更新できるのでしょうか? 私は、textareaにvalue属性を付けることはできません。PHP MySQLの更新テーブルのテキストエリアhtml

私のテーブルNContribには、以下の構造を有する:私のPHPページで

+-------------------+--------------+------+-----+---------+----------------+ 
| Field    | Type   | Null | Key | Default | Extra   | 
+-------------------+--------------+------+-----+---------+----------------+ 
| IdVariantNContrib | mediumint(9) | NO | PRI | NULL | auto_increment | 
| ID    | varchar(30) | YES |  | NULL |    | 
| Reference   | varchar(20) | YES |  | NULL |    | 
| ResultHRM   | varchar(60) | YES |  | NULL |    | 
+-------------------+--------------+------+-----+---------+----------------+ 

を、私はそのように、このテーブルを表示:

<form method='POST' action='SaveValidation.php'> 
    <?php 
    require_once 'config.php'; //database connection 
    $sql='SELECT ID, Reference, ResultHRM FROM NContrib'; 
    $PerformSql=mysqli_query($conn,$sql) or die(mysqli_error($conn)); 
    ?> 
<table style="width:100%" border='1px' CELLSPACING='0' cellpadding='2'> 
    <tr> 
    <th>&nbsp;ID&nbsp;</th> 
    <th>&nbsp;Reference&nbsp;</th> 
    <th>&nbsp;ResultsHRM&nbsp;</th> 
    </tr> 
<?php 
while($rowNcontrib = mysqli_fetch_assoc($PerformSql)) { 
    echo "<tr><td>&nbsp;".$rowNcontrib["ID"]."&nbsp;</td><td>&nbsp;".$rowNcontrib["Reference"]."&nbsp;</td><td><textarea name='ResultHRM[]' id='ResultHRM[]' cols='30' rows='1'></textarea></td></tr>"; 
} 
?> 
</table> 
<input type="submit" name="sendEcht" value="Submit" /> 
</form> 
+1

テキストエリアでは、$ _POST [「your_text_area_name」]の値を取得することができますPHPの名前を持っている.... –

+1

あなたのコンテンツを表示したいときは、

答えて

0

1)value

2を示すために、<textarea></textarea> beetweenで$rowNcontrib['ResultHRM']を使用)また、これはあなたが更新したtextarea値のarrayを与えるだろうが、あなたは値がこれに属するのトラックを取得することはありませんname='ResultHRM[]'を使用している使用ID。だからname='ResultHRM[$id]'。ここidは、だからあなたのコードは、これはあなたにこのような何かが表示されます。この

if(isset($_POST['sendEcht'])){ 
echo "<pre>";print_r($_POST);die;} 

用のページSaveValidation.phpチェックで今

while($rowNcontrib = mysqli_fetch_assoc($PerformSql)) { 
     $id = $rowNcontrib["ID"]; 
     echo "<tr><td>&nbsp;".$rowNcontrib["ID"]."&nbsp;</td><td>&nbsp;".$rowNcontrib["Reference"]."&nbsp;</td><td><textarea name='ResultHRM[$id]' id='ResultHRM[]' cols='30' rows='1'>".$rowNcontrib['ResultHRM ']."</textarea></td></tr>"; 
    } 

よう

でなければなりませんrow

のIDでなければなりません

Array 
(
    [ResultHRM] => Array 
     (
      [3] => hello its test 
      [11] => test string 
      [10] => 

     ) 

    [sendEcht] => Submit 
) 

// here 3,11, 10 are my id's of table in your case it will be the id's of your table then you can easily update your table `ResultHRM` field 
+0

ありがとうございました。 IDに関する質問が1つだけあります。フォームを投稿したとき、次のようにしてテキストエリアの内容を簡単に取得できます: '$ textarea = $ _ POST ['ResultHRM'];'、しかしIDの場合はどうすればいいですか?私の考えでは、私はそのようにしていました: 'foreach($ textarea $ value) {$ sql = 'UPDATE TABLE SET ResultHRM ='。$ textarea ' id = ?? '} ' – user979974

+0

私はそれを得ると思う、私は自分のidを取得するのが好きだった:' $ textarea = $ _ POST [' ResultHRM ']; foreach(array_values($ textarea)as $ i => $ value) { $ j = $ i + 1; echo 'UPDATE TABLE SET ResultHRM = "'。$ value。 '"ここでID ='。$ j。 '
'; } ' – user979974

0

私はここで言及したい特定のポイントがあります。

  1. ResultHRMフィールドがtextareaの値をフォームに保持する場合、私はthaデータ型を変更する。現在、そのvarchar(60)です。私は、それがtextであることを提案します。
  2. データベースからデータをフェッチした後は、それをテーブル構造で表示しています。私は、テキストエリアを追加し、既存の値を入力することをお勧めします。 ResultHRM_ta
  3. ポイント2を実行してフォームを送信すると、$_POST['ResultHRM_ta']のテキストエリアの値をSaveValidation.phpに設定できます。
  4. データベースに値を保存します。

私は、あなたが従う必要があるプロセスの非常に基本的な概要を述べました。あなた自身でセキュリティ対策とコーディング標準の世話をする必要があります。

0

これを解決するには、javascriptメソッドでそれぞれのコードとパスIDでAJAXリクエストを呼び出すことができます。

次のように各テーブル行のメソッドを呼び出すことができますに

とHTMLコード内:

<table style="width:100%" border='1px' CELLSPACING='0' cellpadding='2'> 
    <tr> 
    <th>&nbsp;ID&nbsp;</th> 
    <th>&nbsp;Reference&nbsp;</th> 
    <th>&nbsp;ResultsHRM&nbsp;</th> 
    </tr> 
<?php 
while($rowNcontrib = mysqli_fetch_assoc($PerformSql)) { 
    echo "<tr><td>&nbsp;".$rowNcontrib["ID"]."&nbsp;</td><td>&nbsp;".$rowNcontrib["Reference"]."&nbsp;</td><td><textarea name='ResultHRM' id='ResultHRM' cols='30' rows='1'></textarea></td><td><button type='button' onclick='update(".$rowNcontrib["ID"].")'">Update</button>; 
} 
?> 
</table>