0

ユーザーがオプションを選択してから[移動]をクリックする場所をHTMLで選択します。次に実行したいのは、最初の選択で選択したオプションに基づいて、mysqlデータベースから受信したデータが入力された別のデータを表示することです。

クエリを実行する場所でコードを動作させてデータを取得し、ajax呼び出しで成功します。問題は、返されるデータをフォーマットして、htmlselectにデータを入力できるようにする方法がわからないことです。配列に返されたjsonからの結果を解析する必要があると考えました。この配列を使用して、各値で選択オプションを出力できます。ただし、これを行う方法がわかりません。または誰かがより良い提案を持っているなら助けてください。

process.php

<?php
$pdo = new PDO("mysql:host=localhost;dbname=sales_rep", "root", "");


$country = $_POST['q'];


$stmt = $pdo->prepare("
    SELECT DISTINCT state_prefix
    FROM zips
    WHERE country = '$country'
    ORDER BY state_prefix ASC
    LIMIT 50");


if($stmt->execute()){
    echo json_encode($stmt->fetchAll( PDO::FETCH_OBJ ));

} else {
    echo "query fail";
}   

?>

rep.js

 $('#country').submit(function(event) {

event.preventDefault();



 /*clear result div*/
   $("#result").html('');


  var values = $(this).serialize();



  $.ajax({
  url: "process.php",
  type: "post",
  data: values,
  dataType: 'json',
  success: function(response){
       console.log(response);
  },
  error:function(){
      alert("failure");
      $("#result").html('there is error while submit');
  }   
 }); 



  }); 
4

1 に答える 1

0

私はそれを使用しました:

これは私のphpサーバーです:

<?php
$HTTP_RAW_POST_DATA = file_get_contents("php://input");
$data=json_decode($HTTP_RAW_POST_DATA,true);
$option= $data['option'];
require_once '../../Model/yourmodel.php';
$model= new Model();
header("Content-Type: text/html;charset=utf-8");
print json_encode($model->getQueries($option));
?>

これは私のモデルです:

 $data = array();
        try {
            $myconexion= new conexion();
            $cn = $myconexion->connect();
            mysql_query("SET NAMES 'utf8'");
            $rs = mysql_query($sql, $cn); //some sql
            while($reg = mysql_fetch_assoc($rs)) {
                $data[] = $reg;
            }
            mysql_free_result($rs);
            mysql_close($cn);
        } catch (exception $e) {
            try {
                mysql_free_result($rs);
            } catch (exception $e) {

            }
            try {
                mysql_close($cn);
            } catch (exception $e) {

            }

        }
        return $data;

そしていくつかのクライアント:(jquery)

$("#country").submit(function(event){
event.preventDefault();


    var option = $("#myIDoption").val();
    //my atributes
    var jsonCliente = {
        option : option,
      };

     $.ajax({
        type: "POST",
        data: JSON.stringify(jsonCliente),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "../backend/someurl.php",
        success: function ( data ) {
          //example of json result
          /*
          [{"idtb_producto":"3","name":"ENFERMEDADES ENDEMICAS EN EL PERU",
          "stock":null,"buyprice":null},{"idtb_producto":"4","name":
          "ENFERMEDADES PARASITARIAS","stock":null,"buyprice":null}]    
          */
             $.each(data, function(i) {
               var nombre = data[i].name;
               var stock = data[i].stock;
               var price = data[i].buyprice;
               //do something with my data
            });

        }
    });

    return false;
 });

この情報がお役に立てば幸いです : D

于 2013-03-13T22:56:22.800 に答える