php - 使用 jQuery 插入数据库并获取反馈

标签 php jquery html mysql

我的服务器上有一个 MySQL 数据库。这就是我的 HTML 在数据库中存储内容的方式

var shV = localStorage.getItem("PersName");
var idV = localStorage.getItem("codeQR");
var posV = localStorage.getItem("position");

window.open('http://*.es/insert.php?sh='+shV+'&id='+idV+'&pos='+posV,
'blank','location=no,hidden=yes,closebuttoncaption=Done,toolbar=no');

Insert.PHP 文件

<?php
try {
$pdo = new PDO('mysql:host=mysql.**');
    $shortV = $_GET['sh'];
    $idnumberV = $_GET['id'];
    $positionV = $_GET['pos'];
$statement = $pdo->prepare("INSERT INTO idtabelle (short, idnumber, position) 
VALUES (:sh, :id, :pos)");
$statement->execute(array('sh' => $shortV, 'id' => $idnumberV, 'pos' => $positionV));  
echo "$idnumberV eingetragen"; 
    $pdo = null;
    } catch (PDOException $e) {
    die($e -> getMessage());
    }
?>

我想存储它们而不打开新页面或向它们显示插入网址。在数据库中之后,只有当它们真正位于数据库中时,我才需要像“您的数据已输入”这样的反馈。

在另一个 HTML 中,我通过在文本字段中输入 ID 来搜索位置。它像我想要的那样工作。在页面中给出反馈。

搜索.html

<form id="search" name="search" method="post">
    <input type="text" id="txt1" name="search_input">
  <button type="submit" class="btn btn-info" id="bt1">Get Position</button>
  </form>
    <div id="div1">Testing</div>
      <div id="div2"> Here </div>
  <script>
            $(document).ready(function(){
                $("#search").on("submit", function(e){
                    e.preventDefault();
                    $.post("/search3.php", $("#search").serialize(), function(d){
                        if (!$.trim(d)){   
                            alert("Nothing found !");   }
                        else{   
                            $("#div1").empty().append(d);
                            localStorage.setItem("PosGet",d);   
                            document.getElementById("div2").innerHTML=(d);
                                }
                        });
                    });
            });

Search.PHP 文件

<?php
 try {
$pdo = new PDO('mysql:host=mysql.**');
    $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, short 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());
    }
?>

如何才能使插入类似于页面中上面的搜索并带有反馈? 谢谢。

最佳答案

在第一个示例中,代码运行一个新窗口(但隐藏),因此您没有机会从初始窗口获得结果。您应该像提供的第二个示例中那样进行操作。

如果您可以使用 jQuery(您的示例看起来像),您可以使用 jQuery.ajax() 函数

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})

您还可以有成功和失败回调。示例:

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" },
  function(){
      console.log("success");
  },
  function(){
      console.log("error")
  }
})

关于php - 使用 jQuery 插入数据库并获取反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43325538/

相关文章:

php - htaccess 将子文件夹重定向到子域而不更改 url

php - 如何用 PHP 生成 RTF

javascript - 将结果集值传递给 JavaScript 函数

javascript - AJAX 应用程序单个或多个 JavaScript 文件

jquery - 验证错误消息弄乱了所有 `float` 布局

javascript - Electron - 另一个程序正在使用这个文件?

php - SQL 查询按组排序

javascript - jquery自动完成简单json数组未过滤

Javascript 未从 Ajax 调用的 onsubmit 表单接收数据

HTML 和 CSS 高度属性