0

さて、msyql データベースから情報のリストを呼び出すページがあります。たとえば、列ID、名前、電話番号、ラジオボタングループ(ホーム、セル、仕事)などを含むTABLEというテーブルがあります。テーブルに名前、電話番号、および「ステータス(これを何と呼ぶのが最適かはわかりませんが、ラジオボタンの値です)ラジオボタン。私がやりたいのは、各行でラジオボタンに値を割り当てると、ステータス部分を編集します。たとえば、行 1 でホームをクリックし、行 2、セル、行 3 のホーム... などと続けて送信ボタンを押すと、データベースが更新されます。

これは、表のラジオ ボタン セクションのコードです。これはphpタグの下にあります

私が基本的にやったことは、ラジオボタンの各グループ、status_type1、status_type2、status_type3 を呼び出すことです... 基本的に radio name='status_type".$info['id']."

ボタンのクリックから割り当てられた値があるかどうかを確認するために if ステートメントを実行し、それらを送信して入力したいと考えています。これは私がこれまでに持っているものです。

//Radio Button Template
  <fieldset>
<input type='radio' id='status_type_home' name='status_type".$info['id']."' value='home'  />
    <label for='status_type_home'>home</label>
<input type='radio' id='status_type_work' name='status_type".$info['id']."' value='work'  />
    <label for='status_type_work'>work</label>
<input type='radio' id='status_type_cell' name='status_type".$info['id']."' value='cell'  />
    <label for='status_type_cell'>cell</label>
</fieldset>

 </td>";


//If statement to submit radio buttons

    if ($_POST['status_type "$info['id']"']) 
{
$edit_status_sql="UPDATE status SET type = 'status_type".$info['id'] . "' WHERE id = '" . $id . "'";

$edit_status_res=mysqli_query($connection, $edit_status_sql) or die(mysqli_error($connection));
}

私が抱えている問題は基本的に、ラジオボタンの名前をstatus_type [idに基づく変数]として宣言したことです。残念ながら、これは機能しません。誰かが私がそれをフォーマットする方法を理解するのを手伝ってくれるかどうか、または変数内で変数を宣言することさえ可能かどうか疑問に思っていました。ありがとう!

4

2 に答える 2

0

あなたの PHP コードは構文的に正しくありません。正しい値を持っていると仮定すると、次$infoのようになります

if ($_POST["status_type$info[id]"]) 

知らせ:

  • HTML に合わせてスペースが削除されました
  • 二重引用符は文字列内から削除され、代わりに区切られるようになりました
  • の配列インデックスの一重引用符$infoが削除されました

同等のものも使用できます$_POST["status_type".$info['id']]

ただし、そのコードには他にも多くの問題があります。

  • ページ内の複数のラジオ ボタンに同じ HTML ID を使用しているようです (ID は各行で再利用されます)。それは正しくありません。ID は一意である必要があります。
  • 変数が定義されていない場合は、をif防ぐ必要があります。E_NOTICEつまり、読む必要がありますif(isset($_POST[...]))
  • コードはSQL インジェクションに対して脆弱です。これは今すぐ修正する必要があります。
于 2012-08-29T07:29:03.000 に答える
0

する必要があります

if ($_POST["status_type".$info['id'].""]){
    .....
}

あなたが持っている:

  if ($_POST['status_type "$info['id']"']) {
    .....
  }

また、私はこのようにsmthを行います:$statusType = "status_type".$info['id'];そしてそれを次のように使用します$_POST["$statusType"]

$edit_status_sql="UPDATE status SET type = '."$statusType".' WHERE id = '".$id."'";
于 2012-08-29T07:30:07.480 に答える