php
  • javascript
  • mysql
  • 2012-03-13 11 views 1 likes 
    1

    私のデータベースからいくつかのデータを選択していますので、私のドキュメントにPHPでエコーすることができます。どのように私はそれをJavaScriptにまっすぐに渡すことができますか?ここでJavaScriptからMySQLから取得したデータを使用しますか?

    は、私が取得し、エコー方法です:

    $q=mysql_real_escape_string($_GET['q']); 
    $query="SELECT * FROM contacts WHERE id = '".$q."'"; 
    $result = mysql_query($query); 
    while($row = mysql_fetch_array($result)) { 
        echo "Name: " . $row['first'] . " <br />"; 
        echo "Surname: " . $row['last'] . " <br />"; 
    } 
    mysql_close(); 
    
    +0

    「*それは駄目ではありませんか?」とはどういう意味ですか? – Lion

    +0

    JSONを使用して、データをスクリプト要素にエンコードします。また、上記(といくつかの回答)によって許可されているさまざまな注入攻撃を許可しません。 –

    +0

    @pst json_encode()は、この[{"id": "item-1"を[{\ "id \":\ "item-1 \"、。この質問をチェックしてください。http://stackoverflow.com/questions/9674305/saving-localstorage-key-into-mysql – jQuerybeast

    答えて

    2

    これは、この設定を取得するために迅速かつ簡単な方法です。

    echo("<script>"); 
    echo("var myJSvar = " . json_encode($row) . ";"); 
    echo("</script>"); 
    

    ここから任意のJSでmyJSvarを使用できます。

    alert(myJSvar['first'] + " " + myJSvar['last']); 
    
    +0

    json_encodeの使用のための+1(スクリプト要素の早期終了と[他の]注入ベクトルに対する魔法の防止もあります)。しかし、私は、データをマッサージして(たとえ1-1マッピングであっても)、PHPとJSの間で固定APIを作成したいと思うでしょう。 –

    +1

    また、$ rowが空の配列として初期化されていることを確認してください。そうすれば、空のオブジェクトが得られます(つまり、JavaScriptエラーを投げないようになります)。 myJSvar.firstを使用して同じパラメータにアクセスすることもできます。 – Bram

    +0

    誰もがエコーを使用しますか? – jQuerybeast

    0
    <div id="name"> 
    <?php echo $name; ?> 
    </div> 
    
    <script type="text/javascript"> 
    //jquery example 
    $(document).ready(function(){ 
        alert($('#name').text()); 
    }); 
    </script> 
    
    +0

    また、変数を直接いくつかのJavaScriptコード。私はあなたがjsコードのインジェクションから保護するためにこれをやっていると仮定します。これは良い考えのようです。 – octern

    +0

    @octern ...それ以外は何も保護しません。 –

    +0

    @octern XSSの保護: 'echo htmlspecialchars($ name);'私はページ上のインラインスクリプトが嫌いです。このメソッドを使用すると、インクルードされたjsファイルのメソッドで名前を処理できます。例 '/*external.js*/var nameBehavior = function(){alert($( '#name')。text()); } ' – cetver

    0

    $ xはそれを行う必要があり、文字列(または、本当に、ただのタイプは、それらを渡す前に互換性があることを確認してください何か)

    $x = phpvar 
    
    echo "<script type='text/javascript'> 
    function Javascript_function(){ 
    var passed = ".$x."}</script>"; 
    

    です。スクリプト<>タグを忘れないでください。そうすれば、おそらくすべてのページにjavascriptを投げるのを防ぐために挿入することはできません。

    関連する問題