2017-05-22 20 views
0

javascriptからphpに変数を渡してデータベースに挿入しようとしています。これは、ページなどをリフレッシュせずに行う必要があります。値はjsから直接来て、htmlにはありません。ここに私のコードからのクリップです:javascriptから含まれるPHPに値を渡す

<script> 
    ... 
    // Variables to submit, for now assume they have values 
    var username; 
    var filename; 
    var chart_data; 
    <?php 
     $query = "INSERT INTO table_name(userName,data,file_name) 
     VALUES('/*the username */','/*the chart_data*/','/*the filename*/')"; 
     $res = mysql_query($query); 
    ?> 
    ... 
</script> 

答えて

0

あなたはhttpリクエストによって値を送信し、PHPでREQUESTでそれらを受けるべきです。 これは簡単にjQuery Ajaxで実現できます。

0

AJAXを使用して目的を達成してください。 Ajax(Asynchronous JavaScript + XML)は、それ自体がテクノロジーではなく、HTMLまたはXHTML、カスケーディング・スタイル・シート、JavaScript、Document Object Model、XML、XSLT、そして最も重要なXMLHttpRequestオブジェクトなど、今やXMLはもはや使用されておらず、主なデータモデルは無数の機能のためJSON(Javascript Object Notation)です。

PS:あなたのルーチンがあまりにも基本的で、jQueryやフレームワークのようなライブラリを避けるなら、それは不要です。シンプルなAJAXだけを実行するコードをロードしますか?共通...私たちは生コードをより頻繁に取る必要があります。皆さん、jQueryはクロスブラウズの問題に役立ち、いくつかの実装を加速しますが、純粋なjavascriptでソリューションを表示してコミュニティをシンプルにすることが重要です。

<script> 
    ... 
    // Variables to submit, for now assume they have values 
    var username; 
    var filename; 
    var chart_data; 
    <script type="text/javascript"> 
function loadXMLDoc() { 

    var data = { 
    username: username, //or the values itself 
    filename: filename, 
    chart_data: chart_data 
}; 
    var xmlhttp = new XMLHttpRequest(); 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == XMLHttpRequest.DONE) { 
      if (xmlhttp.status == 200) { 
       alert('ok'); 
      } 
      else if (xmlhttp.status == 400) { 
       alert('There was an error 400'); 
      } 
      else { 
       alert('something else other than 200 was returned'); 
      } 
     } 
    }; 

    xmlhttp.open("POST", "yourpage.php", true); 
    xmlhttp.send(data); 
} 
//call wherever you want, with the needed variables loaded 
loadXMLDoc(); 

// or the simplest ajax ever without function formed 
var xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("POST", 'yourfile.php'); 
xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == XMLHttpRequest.DONE) { 
     if(xmlhttp.status == 200){ 
      console.log('Response: ' + xmlhttp.responseText); 
     }else{ 
      console.log('Error: ' + xmlhttp.statusText) 
     } 
    } 
} 
xmlhttp.send(data); 
    </script> 
     <?php 
      if (isset($_POST)){ 
      $data = json_decode($_POST['data']); 
      $query = "INSERT INTO table_name(userName,data,file_name) 
      VALUES("$data->username","$data->chart_data","$data->filename")"; 
      $res = mysql_query($query); 
     } 
     ?> 
0

JavaScriptはお使いのブラウザに表示されています。 PHPはサーバー側です。

お使いのブラウザでは、PHPを使用できません。だから何が起こるために必要なのは次のとおりです。

  1. はリダイレクトが
  2. あなたの次のページへ
  3. 、データベースに保存されますPHPページに送信するHTMLフォームを作成し、JavaScriptを値で埋める必要があり、

- または -

データベースに保存されますPHPスクリプトに提出するAJAXを使用してください。ネイティブのjavascriptでこれを行うことができます。おそらくJQueryを調べるほうが簡単でしょう。それを見渡して試してみてください。これは十分に文書化されており、JQueryのドキュメントから理解することができます。

また、データベースのアクティビティについては、SQLインジェクションを避けるためにプリペアドステートメントを使用することをお勧めします。

+0

あまりにも遅いタイピング...カルロスが言ったこと。 –

関連する問題