簡體   English   中英

HTML(輸入)-> php-> mysql-> php-> json-> HTML渲染

[英]HTML(input)->php->mysql->php->json->HTML render

問題描述:我想用php從HTML輸入中獲取值並在mysql數據庫上運行查詢:SELECT * FROM WHERE(值= HTML輸入中ID的值)

我要做的事情:我編寫HTML輸入:

  <input id="akt_djubrenje" type="text" value="1">

然后我寫PHP:

try {
      /* Establish the database connection */
      $conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password);
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

     $result = $conn->query("SELECT * FROM akt_djubrenje WHERE ID_akt = :akt_djubrenje");
     $result->execute(array(':akt_djubrenje' => $_POST['akt_djubrenje']));
...
...
etc.

我還提供了輸入字段的php文件數據,並使用AJAX調用了php文件:

    function tabela() {

    $.ajax({
            url: 'getdjubrenje.php', // make this url point to the data file
            dataType: 'json',
            data:{akt_djubrenje:$("#akt_djubrenje").val()},
            async: false,
            success:function(json){
            var data = new google.visualization.DataTable(json);
            alert (json);
  // Create and draw the visualization.
  visualization = new google.visualization.Table(document.getElementById('tabela_djubrenje'));
  visualization.draw(data, {'allowHtml': true});
            }
        });
}

我的問題是如何從HTML獲取輸入字段值並使用php / ajax獲取

當我鍵入確切的值等時,用“ 1”代替$_POST ...一切正常,因此此代碼存在問題。 有人有解決我問題的想法嗎?

您的問題是您使用PDO::query() ,然后嘗試綁定變量。 這就是query()工作方式:

PDO :: query()在單個函數調用中執行一條SQL語句,以PDOStatement對象的形式返回該語句返回的結果集(如果有)。

因此,它嘗試立即執行查詢,而不等待您的execute()調用。 這就是為什么出現“ 您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以:akt_djubrenje在第1行:akt_djubrenje附近使用正確的語法 ”。

您應該做的是使用PDO::prepare()來准備查詢和綁定變量:

 $result = $conn->prepare("SELECT * FROM akt_djubrenje WHERE ID_akt = :akt_djubrenje");
 //               ^^^^^^
 $result->execute(array(':akt_djubrenje' => $_POST['akt_djubrenje']));

我認為您是以GET而不是POST的形式提交請求。 因為您尚未在$ .ajax中將發送類型包括為POST。 請更正。

在$ .ajax({...,})中添加選項type="POST" ;

代替

$result = $conn->query("SELECT * FROM akt_djubrenje WHERE ID_akt = :akt_djubrenje");
$result->execute(array(':akt_djubrenje' => $_POST['akt_djubrenje']));

 $result = $conn->prepare("SELECT * FROM akt_djubrenje WHERE ID_akt = ?");
 $result->execute(array($_POST['akt_djubrenje']));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM