1

次の HTML を使用して、正常な更新を作成しようとしています。

<form id="form2" name="form2" method="post" 
  onsubmit="return validateForm();" action="">

    Id <input type="text" class="txt" name="id" />
    <br />
    Name <input type="text" class="txt" name="name" />
    <br />
    Website <input type="text" class="txt" name="website" />
    <br />
    Description <input type="text" class="txt" name="description" />
    <br />
    <input type="submit" id="submit" value="Submit"/>
</form>

次に、次の PHP を使用して値を読み取り、データベースを更新します。

<?php
  global $wpdb;
  if (isset($_GET['id']) && !empty($_GET['id']) &&
    isset($_POST['name']) && !empty($_POST['name']) &&
    isset($_POST['website']) && !empty($_POST['website']) &&
    isset($_POST['description']) && !empty($_POST['description']))
  {
      $wpdb->query("update where id = $_GET['id'] ".PRO_TABLE_PREFIX
            ."tutorial (name, website, description) "
            ."values('{$_POST['name']}', '{$_POST['website']}', '{$_POST['description']}')");
  }
?>

私は何を間違っていますか?

4

5 に答える 5

2
<form id="form2" name="form2" **method="post"** onsubmit="return validateForm();" action="">

フォーム メソッドは post であることに注意してください

getメソッドを使用してデータを取得しようとしています

isset ( $_GET['id'] ) && ! empty ( $_GET['id'] )

これらを $_POST['key_name]; に置き換えます。適切な結果を得るために。

于 2013-01-01T06:25:46.740 に答える
0

ID を $_GET['id'] に入れたい場合、フォーム アクションは次のようになります。

action = "<page-url>?id=<somevalue>"

また、id を入力するためのテキスト ボックスを作成する必要があり、jQuery または Javascript を使用して、そこへの入力に応じてフォームを変更する必要があります。

最後に、これが複雑すぎる場合は、他の人が提案したように $_GET['id'] を $_POS['id'] に変更してください。

また、SQL クエリが正しくありません。他の人はすでにそれを指摘しています。

于 2013-01-01T06:28:43.700 に答える
0

2つのこと。

1) フォーム メソッドは POST であるため、 を使用する必要があります$_POST['id']

2)クエリ文字列内で、mysqlUPDATE構文が間違っているだけでなく、文字列内でキーを持つ配列を使用するには{}タグでラップする必要があります。これはうまくいくはずです:

$wpdb->query("UPDATE " . PRO_TABLE_PREFIX . "tutorial SET name='{$_POST['name']}', website='{$_POST['website']}', description='{$_POST['description']}' WHERE id={$_POST['id']}");
于 2013-01-01T06:18:42.190 に答える
0

これを使用してください更新クエリは正しい構文ではありません

$wpdb->query("update ".PRO_TABLE_PREFIX."tutorial set  name='{$_POST['name']}', website='{$_POST['website']}', description= '{$_POST['description']}' where id= $_GET['id'] ) ");
于 2013-01-01T06:19:06.167 に答える
0

POST IDで試してください

<?php
     global $wpdb;
if ( isset ( $_POST['id'] ) && ! empty ( $_POST['id'] ) &&
 isset ( $_POST['name'] ) && ! empty ( $_POST['name'] ) &&
 isset ( $_POST['website'] ) && ! empty ( $_POST['website'] ) &&
 isset ( $_POST['description'] ) && ! empty ( $_POST['description'] ))
{
$wpdb->query("INSERT ".PRO_TABLE_PREFIX."tutorial ( name, website, description )
values('{$_POST['name']}','{$_POST['website']}','{$_POST['description']}') ");
}
?>
于 2013-01-01T06:15:10.813 に答える