1

以下は私が抱えている問題です。私はphpで作業してきましたが、それはすべてうまくいっています。私が抱えている問題は JavaScript にあります。私のメンターは、バックグラウンドで作業を行うための JavaScript のセットアップを手伝ってくれたので、それは私の問題ではありません。以下のセグメントでコマンドを実行することさえ知らないほど、私は JavaScript についてあまり学習していません。JS コードは href としてタグを使用して実装されているため、ここで適用する方法ではなく、動作することはわかっています。

 <?php           

        if (isset($_GET['item'])) { ** This way it is dependent on them having created a product and the add page redirecting them with all required info to pop up the edit form. **

?>   

            ** This is the section I have the problem with... No idea how to implement the following correctly. **

            <script>

                openEditItemForm(<?php echo $_GET['item'] ?>);

            </script>

 <?php

        } else{

            }

?>

これがかなりばかげた質問のように思われる場合は申し訳ありませんが、私が言ったように、私はJSにほとんど触れておらず、検索で探しているものを見つける方法さえわかりません.

編集: わかりましたので、これが何のためにあるのか、これはオープン エンドのままにしました... これは、クライアントが自分の Web サイトにアイテムを追加するバックエンド セクションです。「openEditItemForm」は別の場所で定義されており、ページの別のポイントで機能しています。これは私の問題ではありません。このセクションでの問題は、ページが再度開かれたときに実際にコードが実行され、URL にアイテム ID が含まれていることです。コードを json_encode などで推奨されたものに変更した後でも、作成された機能をまだ完了していません。

また、json_encode を含める理由について説明してくれた Rick Burgess と、更新されたコードについて Brad と steveukx に感謝します。

繰り返しますが、これになると迷ってしまうので、また間違った取引を探しているのかもしれません。そのコードは、ボックス内に編集フォームがあるダイアログ ボックスを開くことになっています。ページの別の場所で別の形式で機能します (上記の < a > タグの href セクションで説明したように)。私は起こらない何かを期待していますか?

2 番目の編集: わかりました、私が見落としていたのは、私が機能しようとしていた機能が既に機能していたことです... 以下の人たちが提供したコーディングは非常に役立ちました。魅力のように機能します。顧客がアイテム ID を入力すると、ダイアログが呼び出されるようになりました。素晴らしい!

4

1 に答える 1

3

が文字列の場合$_GET['item']は、JavaScript エラーが発生しないように引用符で囲む必要があります。

<script>
    openEditItemForm("<?php echo $_GET['item'] ?>");
</script>

これはセキュリティ上の脆弱性であり、ドキュメントに出力する前に値が検証されていることを確認する必要があることに注意してください。

Brad がコメントしたように、ユーザー コンテンツに適用する必要がある最小値は次のjson_encodeとおりです。

openEditItemForm("<?php echo json_encode($_GET['item']) ?>");
于 2013-04-02T16:33:17.977 に答える