2

データベースからHTML5キャンバス/Javascriptアプリケーションにテキストを書き込む必要があるプロジェクトがあります。

このコンテンツを選択するために、属性「参照」を指定しました。ここで、コンテンツIDを使用してデータベースに問い合わせることができます(例:index.php?reference = execute1)。

キャンバスにデータを書き込むには、テキストコンテンツをJavascript変数に取り込む必要があるため、AJAXを使用しました。私のソリューションは機能していますが、PHP$_GETではなくJavascriptdocument.URLから参照属性値を取得する必要があります。

コードは次のとおりです。

var url = decodeURIComponent(document.URL);
var attr = "reference";
var attrPos = url.lastIndexOf(attr);
var referencePos = attrPos + attr.length + 1;
var reference = url.substr(referencePos,url.length);

私がしていることは私にとってきれいな方法ではないようです。

まず、?reference=はPHP$ _GETで使用する必要があり、Javascriptを介してハッキングしないでください。

次に、アプリケーションが「reference」という名前のフォルダーにある場合に適切な値を取得するには、search()メソッドの代わりにlastIndexOf()を使用する必要があります。

それでも、localhost / reference / projectfolder / index.phpのようなURIを持つ「reference」という名前のフォルダーにプロジェクトがあり、データベースに「projectfolder」という名前の参照がある場合、要求していなくてもコンテンツが読み込まれます。 index.php?reference = projectfolder

あなたの経験から、私の場合の最良の解決策は何ですか:Javascriptで使用するPHP/MySQLデータを取得できるようにすることです。Ajaxが最善の方法のようですが、ご覧のとおり、少なくとも私の解決策はクリーンではありません。

ご協力いただきありがとうございます。

4

1 に答える 1

1

それでも、localhost / reference / projectfolder / index.phpのようなURIを持つ「reference」という名前のフォルダーにプロジェクトがあり、データベースに「projectfolder」という名前の参照がある場合、要求していなくてもコンテンツが読み込まれます。 index.php?reference = projectfolder

index.phpだけを要求しているときにドキュメントを空にしたい場合は、$ _ GET ["reference"]が設定されているかどうかを確認してから、空の本文を返します。

あなたの経験から、私の場合の最良の解決策は何ですか:Javascriptで使用するPHP/MySQLデータを取得できるようにすることです。Ajaxが最善の方法のようですが、ご覧のとおり、少なくとも私の解決策はクリーンではありません。

体内でJSONを返す方法については、この要点を確認してくださいhttps://gist.github.com/2627924

于 2012-05-16T16:03:29.863 に答える