2017-06-19 2 views
0

jsの中でPHPを使うのは悪い習慣ですが、残念ながら私のスキルはそれ以外のものを考え出すには不十分です。PHP MYSQLクエリ内のJavascript

$(document).ready(function() { 

     $("#type").change(function() { 
      var val = $(this).val(); 

      valSize = "<?php $sql = "SELECT model FROM cars WHERE brand = 'val'"; 
          $result = mysqli_query($conn, $sql); 
          while($row = mysqli_fetch_assoc($result)){ 
           echo '<option>'.$row['model'].'</option>'; 
          } 
         ?>"; 

      $("#size").html(valSize); 

     }); 


    }); 

PHP変数にval変数を追加する方法はありますか?

+1

<?php if ($_POST['brand']) { // Be sure to set up your SQL $conn variable here $conn = ...; $sql = "SELECT model FROM cars WHERE brand = '" . $_POST['brand'] . "'"; $result = mysqli_query($conn, $sql); $data = []; // Save the data into an arbitrary array. while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; } echo json_encode($data); // This will encode the data into a variable that JavaScript can decode. } 

は、その後、あなたのJavaScriptで、AJAXリクエストを実行しますか? – AJC

+0

いいえ、あなたのHTMLとJavascriptがブラウザに送られる前にPHPがサーバ上で実行されます。 JS 'change'イベントは、ユーザがブラウザの'#type'要素を変更したときに発生します。そのため、PHPの作業はその時点で終わりです。 jQueryのはそれを、あなたはそれのonchange関数で別のPHPページに 'val'を送信することができます[AJAX機能](http://api.jquery.com/category/ajax/)を持っているだけで、' '

+0

平文の 'valSize'の値は何でしょうか? – SaidbakR

答えて

2

JavaScript AJAX呼び出しを使用して、サーバー上の別のPHPファイルにリクエストを送信することをお勧めします。

まず、サーバー上の別のPHPファイルを作成し、私は(これだけ説明の目的のために、私はあなたのアプリケーションに、より意味のあるものを選ぶことをお勧めしたい)、それをquery.phpラベルます。あなたのPHPとJavascriptが右、異なるコンピュータ上で実行されていることを知っている

$(document).ready(function() { 

    $("#type").change(function() { 
     var val = $(this).val(); 

     $.post('query.php', {'brand' : val}, function(data){ 
      var jsonData = JSON.parse(data); // turn the data string into JSON 
      var newHtml = ""; // Initialize the var outside of the .each function 
      $.each(jsonData, function(item) { 
       newHtml += "<option>" + item['model'] + "</option>"; 
      }) 
      $("#size").html(newHtml); 
     }); 
    }); 
}); 
0

ページが読み込まれたら、PHPコードを実行することはできません。あなたは、必要なデータをクエリし、元のファイルに戻すようにエコーするphpファイルへのajax呼び出しを行う必要があります。私はまた、echo json_encode($queryResults);を使用してそれをエンコードすることをお勧めします。JSON.parse($data); ajax呼び出しの成功関数の戻り値データ。