2014-05-03 94 views
0

這裏是我的按鈕如何設置從數據庫查詢HTML輸入字段值

$("#editVehicle").button().click(function(event) { 

    event.preventDefault(); 
    var vp = $("input[name=vehicle_plate]").val(); 

    var dataString = 'vehicle_plate='+ vp; 

    $.ajax({ 
     type: "POST", 
     url: "editvehicle.php", 
     data: dataString, 
     success: function(){ 
     alert("Success!"); 
     } 
     }); 

    }); 

這是我的PHP

<?PHP 
include("db.classes.php"); 
$g = new DB(); 
$g->connection(); 

     if($_POST) 
      { 
       $vehiclePlate = $g->clean($_POST["vehicle_plate"],1); 

       $g->edit($vehiclePlate); 
      } 
$g->close(); 
?> 

這裏是我的db.classes

public function edit($vehiclePlate) 
    { 
     $sql = "select vehicle_name from vehicles where vehicle_plate='$vehiclePlate'"; 

     $result = mysql_query($sql); 

     $row = mysql_fetch_array($result); 

     echo "<script> 

     $(\"input[name=vehicle_model]\").val(".$row['vehicle_name']."); 

     </script> 
     "; 
    } 

有是在我的HTML輸入字段,我輸入車牌然後當用戶點擊按鈕程序搜索數據庫的車輛南e用戶輸入的板子,並將該值返回到另一個名爲「vehicle_name」的輸入域。任何想法在哪裏我錯了嗎?

回答

1

您應該依靠JSON使得AJAX時編碼和信息傳遞要求—你編碼在您呼叫的PHP文件的JSON格式的信息,將其發送回你的腳本,並允許它來解析:

public function edit($vehiclePlate) 
    { 
     $sql = "select vehicle_name from vehicles where vehicle_plate='$vehiclePlate'"; 
     $result = mysql_query($sql); 
     $row = mysql_fetch_array($result); 
     echo json_encode($row['vehicle_name']); 
    } 

但是,我通常更喜歡回顯一個數組,以便您可以傳遞比查詢數據更多的信息,例如成功/錯誤狀態,和其他領域:

public function edit($vehiclePlate) 
    { 
     $sql = "select vehicle_name from vehicles where vehicle_plate='$vehiclePlate'"; 
     $result = mysql_query($sql) or die(json_encode(array("error" => 0, "errorMsg" => "MySQL query failed."))); 
     $row = mysql_fetch_array($result); 
     if(mysql_num_rows($row)) { 
      // 1 or more rows are returned 
      echo json_encode(array(
       "success" => 1, 
       "vehicleName" => $row['vehicle_name'], 
      )); 
     } else { 
      // No rows returned 
      echo json_encode(array(
       "error" => 1, 
       "errorMsg" => "No rows returned" 
      )); 
     } 

    } 

警告:你不應該使用mysql_功能—他們是不安全的。使用mysqli_或準備語句

之後,您可以使用jQuery解析JSON數據作爲常用對象。請記住,在dataType財產申報爲JSON(即使$.ajax()將嘗試智能猜),這是很好的做法:)

$("#editVehicle").button().click(function(e) { 

    // Prevent default action 
    e.preventDefault(); 

    // You can declare all variables in this scope with on var statement 
    var vp = $("input[name=vehicle_plate]").val(), 
     dataString = 'vehicle_plate='+ vp; 

    // Make magic happen 
    $.ajax({ 
     type: "POST", 
     url: "editvehicle.php", 
     data: dataString, 
     dataType: "json", // Declare dataType 
     success: function(data){ 
      $("input[name=vehicle_model]").val(data); 
     } 
    }); 

}); 

如果你喜歡在你的JSON數據使用數組:

// Make magic happen 
    $.ajax({ 
     type: "POST", 
     url: "editvehicle.php", 
     data: dataString, 
     dataType: "json", // Declare dataType 
     success: function(data){ 
      if(!data.error && data.success) { 
       $("input[name=vehicle_model]").val(data.vehicleName); 
      } else { 
       alert(data.errorMsg); 
      } 
     } 
    }); 
+0

感謝這工作!提示注意! – fanboime12

+0

你能說出「data.vehicleName」中的「vehicleName」來自哪裏嗎? – fanboime12

+0

@ user3578118它是PHP中的數組鍵。你當然可以改變它。 '「vehicleName」=> $ row ['vehicle_name']' – Terry

相關問題