使用Ajax将PHP中的Echo转换为Div

时间:2017-04-08 21:58:22

标签: javascript php html mysql ajax

我在服务器上有一个简单的数据库(用于测试)。 这个PHP文件在服务器上,当我打开URL时可以工作。 (http://**.com/search.php?id = abc)Echo回复“30”

<?php
$pdo = new PDO('mysql:host=*com; dbname=*test1', '*', '*');
$idV = $_GET['id']; 
$statement = $pdo->prepare("SELECT position FROM idtabelle WHERE idnumber = :idV");
$statement->bindParam(':idV', $idV);
$statement->execute();
 while ($row = $statement->fetch(PDO::FETCH_ASSOC))
{ $posV = $row['position']; };
echo $posV;
?>

HTML仅用于测试

<input type="text" id="txt1">
<button type="button" class="btn btn-info" id= "bt1">Info Button</button>
<div id= "div1"> </div>

我希望当我在文本字段中输入代码并按下按钮时,PHP中的Echo显示在Div中。 我知道我应该使用Ajax GET,但我尝试了很多东西而且没有任何效果。 你能帮帮我吗?

编辑:上次尝试:https://jsfiddle.net/qz0yn5fx/

    <input type="text" id="txt1">
  <button type="button" class="btn btn-info" id="bt1">Info Button</button>
      <div id="div1">Here </div> 

      <script>
          $(document).ready(function() {

    $("#bt1").click(function() {                
      $.ajax({   
         //create an ajax request to load_page.php
        type: "GET",
        url: "http://**.com/search.php?id=a10 ",             
        dataType: "html",   //expect html to be returned      

        success: function(response){                    
            $("#div1").html(response); 
            alert(response);
        }

    });
});
});
      </script>

最好不要看下一个小提琴,我刚刚复制了所有第一个尝试:

https://jsfiddle.net/jqv1ecpj/

1 个答案:

答案 0 :(得分:0)

您可以使用简单的POST请求而不是GET请求。

  <form id="search" name="search" method="post">
    <input type="text" id="txt1" name="search_input">
  <button type="submit" class="btn btn-info" id="bt1">Info Button</button>
  </form>
    <div id="div1">Here </div>

$(document).ready(function(){
    $("#search").on("submit", function(e){
    e.preventDefault();
    $.post("/search.php", $("#search").serialize(), function(d){
        $("#div1").empty().append(d);
    });
  });
});

然后在你的PHP中,(别忘了使用try {} catch {}):

    try {
    $pdo = new PDO('mysql:host=*com; dbname=*test1', '*', '*');
    $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $idV = (isset($_POST['search_input'])) ? $idV = $_POST['search_input'] : exit('The search was empty'); 
    $statement = $pdo->prepare("SELECT position FROM idtabelle WHERE idnumber = ?");
    $statement->bindParam(1, $idV);
    $statement->execute();
    foreach($statement -> fetchAll() as $row){
    echo $row['position'];
    }

    $pdo = null;
    } catch (PDOException $e) {
    die($e -> getMessage());
    }

我认为这应该有效(尚未测试过)。如果它不起作用,请告诉我,我会测试并纠正它。