構築しているサイト/ツールのカスタムフォーム入力に取り組んでいます。
検索を機能させました。入力フィールドの下の小さなdivに結果が表示されます。ユーザーが結果を表示し、適切な結果をクリックして、フォームフィールドに対応するデータを入力できるようにします。これは、データに特殊文字が含まれていない場合(つまり、アポストロフィ)に機能しますが、データにアポストロフィが含まれている場合、関数呼び出しは中断されます。特殊文字をHTMLの特殊文字に変更するのに十分な知識があります。
'
そして、データベースにデータを追加するときにそれを行いました。問題は、関数呼び出しがAJAXを介してdivに配置されるため、HTML特殊文字がページに配置されるときに「評価」され、リテラル文字になることです。関数呼び出しの例を次に示します。
onclick="popForm('1234', 'Some Name', 'Another Name', 'Someguy's Thing', '5678')"
これが私がやろうとしているすべてのリストです:
- ユーザーがフィールドにデータを入力します
- javascript関数は、onkeyup()を介して入力をキャプチャし、それを処理します
- この関数はAJAXを使用してPHPスクリプトを呼び出します
- PHPスクリプトは、検索を実行し、結果を取得し、結果を含むテーブルをechoします。また、onclickを呼び出してフィールドにデータを入力します。
- JavascriptはAJAXからの結果を処理し、その結果をdivのinnerhtmlに追加します。
- ユーザーが結果をクリックすると、onclickがトリガーされ、文字列引数を一重引用符で囲んで関数呼び出しが行われます。
- 関数は、document.getElementById( "fieldname")。value=string;を介して適切なフィールドに文字列を追加します。
- ユーザーがフォームを送信
現在、関数呼び出しの文字通りのアポストロフィが原因で、ステップ6まで進んでいます。
これを改善する方法について何かアイデアはありますか?