0

私がやろうとしていること: 編集ボタンのあるテーブルにmysqlデータベースからデータをロードする。

何が問題になっていますか: 編集ボタンをクリックしても、編集フォームにデータが読み込まれません。

私が試したこと: Firefoxの自宅で次のコードを試しましたが、完全に機能しました。しかし、動作中は、Firefoxの編集フォームでデータをロードできず、IEではボタンをクリックしても何も起こりません。

<?php
echo '<table id="viewAll">';
            echo '<tr>';
            echo '<th>Product</th>';
            echo '<th>Status</th>';
            echo '<th>Summary</th>';
            echo '<th>Created</th>';
            echo '<th>Updated</th>';
            echo '<th>Edit</th>';

            echo '</tr>';


            while ($data=mysqli_fetch_array($result)){

            echo '<tr align="center">

            <td>'.$data['product'].'</td>
            <td>'.$data['status'].'</td>
            <td align="left">'.$data['summary'].'</td>
            <td>'.$data['created'].'</td>
            <td >'.$data['updated'].'</td>';

            echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\"><input type=\"submit\" value=\"Edit\" /></a></td>";

            echo '</tr>';


                }#end of while


            }#end of if



echo '</table>';
?>

そして、私はします:

$id=$_GET['id'];



            $query="SELECT * FROM tickets WHERE id='$id'";


            $result = mysqli_query($db,$query) or die( "My query ($query) generated an error: ".mysql_error());

            $data=mysqli_fetch_array($result);





            mysqli_close($db);

データ配列の内容を使用して、編集フォームのフィールドにロードします。

残念ながら、これはIEでは機能しません。編集ボタンをクリックしても何も起こりません。誰かがそれを修正する方法を教えてもらえますか?ありがとう。

4

5 に答える 5

2

は使用しないでください<input type="submit" value="edit" name="edit" />

"<a href='editForm.php?id='".$data['id']."' style='text-decoration: none' />Edit</a>"ページにデータを送信するだけで十分ですeditForm.php

PS:送信ボタンは、フォーム内のすべてのフォーム要素を送信するためにのみ使用できます。

于 2012-05-31T08:47:45.133 に答える
2

これを使用してみてください:

echo "<td><form action=\"editForm.php\" method=\"get\"><input type=\"hidden\" name=\"id\" value=\"$data['id']\" style=\"text-decoration: none\" /><input type=\"submit\" value=\"Edit\" /></form></td>";

それはあなたがまだボタンを使うことができることを意味します。

また、表形式のデータにテーブルを使用していない場合は、<div>sなどの代替手段を見つけることを強くお勧めします。

また、SQLクエリをサニタイズすることを忘れないでください。そうしないと、SQLインジェクション攻撃を受けやすくなる可能性があります。(例$id=$_GET['id'];=> MySQL接続オブジェクトは$id=mysqli_real_escape_string($conn, $_GET['id']);どこにありますか)。$conn

あなたはグーグルでこれらのもののどれでも検索することができます。

于 2012-05-31T09:12:58.193 に答える
1

このようにボタンを書き込んだ行を修正してください

echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\">Edit</a></td>";

ボタンをクリックして、フォームを送信してみてください。しかし、あなたがしたいのは、editForm.phpページにアクセスすることです

PS:ベストプラクティスを学ぶために、PHPとhtmlに関するいくつかのチュートリアルを読む必要があります;)

于 2012-05-31T08:37:36.703 に答える
0

最初のPHPスクリプトのwhileループで、編集ボタンをエコーする行が間違っています。 行の値を取得するには
、連結関数と引用符を使用する必要があります。次のように置き換える必要があります。.$data["id"]
echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\">Edit</a></td>";

echo "<td><a href=\"editForm.php?id=".$data['id']."\" style=\"text-decoration: none\">Edit</a></td>";

于 2012-05-31T08:39:00.773 に答える
0

または、jQueryを使用してこれを適切に行うことができます。これを読んでみてください。

于 2012-05-31T08:39:10.990 に答える