2012-04-26 14 views
-2

このスクリプトは、ここでstackoverflowで使用されているプレビューと多少似ています。ユーザーが投稿に入力したときには、プレビューで表示される前でもPHPの文字列に変換されたいと思います。これはmysql_real_escape_stringだけでなく、他のものを使うためです。JavaScript入力をPHP文字列に変換

表示する前にPHP文字列にするにはどうすればよいですか?また、私が文字列をエスケープした後に再び表示させる方法を知っていることもとてもうれしいでしょう。それは、本質的に含まれてい

は、コードのこれら二つの部分

<script type="text/javascript"> 
    function preview(field) { 
     var p = document.getElementById('input_exercise'); 
     p.innerHTML = field.value; 
    } 

</script> 
<textarea style="width:500px; height:150px;" onkeypress="preview(this);"></textarea> 
<p id="input_exercise"></p> 

おかげ

+2

mysql_real_escape_stringはプレビューで何をするのですか?あなたが話している "php string"は何ですか? –

+4

php-stringはどういう意味ですか? – mpm

+0

私はあなたが正しいことを理解していれば、あなたが望むようにこれを行うことはできません。文字列を含むサーバーにajaxリクエストを使用し、サーバー上でPHPで処理し、変更された文字列で応答することができます。この方法で、JavaScriptをPHPコードで「インターリーブ」することができます。 –

答えて

0

私は重複が整理のビットがあると思いますが含まれています。 多くの開発者は、最初はJavaScriptがクライアント側でレンダリングされているのに対し、テンプレート(あなたの場合はPHPコード)はサーバー側でレンダリングされることを理解していません。

この意味は?

これは、サーバーがブラウザに出力するHTMLコードを出力するPHPコードを実行していることを示します。 このHTML文字列には、javascriptを使用したスクリプトセグメントが含まれています。 PHPコードが完了すると、コードはサーバーから離れ、ネットワークを介してブラウザーに移動します。ブラウザに到達すると、ブラウザはHTMLを生成したコードを知りません。それだけでなく、静的リソースであってもかまいません。

ユーザー入力にPHPコードを実行するには、ユーザー入力がサーバーに戻る必要があります。 そして、ユーザーにコード出力を表示するには、出力がサーバーからブラウザーに戻る必要があります。

この往復は2つの方法のいずれかで行われます。 最初はフォームで、ページ全体が更新されます(この場合は適切ではありません)。 もう1つはAJAXです。

AJAXはサーバーに小さな情報を送信し、サーバー側でレンダリングし、JavaScript関数にレンダリングした後に戻す方法です。これは、テキストエリアの入力を "PHP文字列"に変えるようなものです。 実際に何が起こるかは、サーバーにテキスト領域の入力を送信し、サーバーはPHPテンプレートをレンダリングします(データで単に "mysql_real_escape_string"関数を実行します)。レンダリングされた結果は、 javascriptのコールバックを作成し、それを "プレビュー" divで気に入ってください。

Here a cool tutorial jQueryを使用して、ajaxとphpについて調べました。 (jqueryを使用してください)

これが役に立ちます。

javaspcriptコードは、次の

$.ajax({ 'url' : '/render-string-for-preview', 
      'type':'post', 
      'data' : { 'text' : $("textarea").val() }, 
      'success' : function(result) { $("#input_excercise").html(result) } 
     }); 

ようになるはずですそして、あなたは「/レンダリング文字列のためのプレビュー」だけで(ないPHP開発者のようなものを行います上のリソースを追加する必要があります。.. )

<? mysql_real_escape_string (POST["text"]) ?> 

これは....