php - 如何将文本框的值存储到数据库中?

标签 php javascript mysql sql ajax

我想要实现的目标:在 HTML 窗口中单击一个按钮,然后打开一个包含文本框和提交按钮的弹出窗口。我在文本框中输入文本,单击提交按钮后,文本应使用 SQl 存储在数据库中。

我有代码(见下文)来获取文本框值,并调用另一个脚本将该值存储在数据库中。

我的 AJAX 代码

$(document).ready(function() {
$("#sub").click(function() {
    $.ajax({
        type: "POST",
        url: "jqueryphp.php",
        data: {
            val: $("#val").val()
        },
        success: function(result) {
            $("div").html(result);
        }
    });
});
});​

HTML 表单代码

<input type="text" name="val[text]" id="val"/><br>
<input type="button" name="sub"  value="submit" id="sub"/>

如何将这些部分组合在一起?

最佳答案

您可以使用如下 HTML 表单:

<html>

<head>
  <script type="text/javascript"
    src="http://code.jquery.com/jquery-1.10.2.js"> </script>
  <script type="text/javascript"
    src="addEntryFormAjax.js"> </script>
</head>

<body>
  <form id="form">
    <input type="text" id="blogText" name="blogText" size="40" />
    <input type="submit" id="submit" value="submit"/>
  </form>

  <div id="result">
    None
  </div>
</body>

HTML 表单使用 JavaScript 附加提交处理程序 (addEntryFormAjax.js):

$(document).ready(function() {
    $("#form").submit(function() {
      doAjax();

      // Prevent normal form submit
      return false;
    });
});

function doAjax() {
    $("#result").html("<span>Calling ...</span>");

    $.ajax({
        type: "POST",

        url: "addEntryAjaxPdo.php",

        dataType: "html",

        data: {
          blogText: $("#blogText").val()
        },

        success: function(result) {
          $("#result").html(result);
        }
    });
}

如果按下提交按钮,提交处理程序将使用 AJAX 调用 PHP 脚本 addEntryAjaxPdo.php 将数据插入数据库:

<div>

<?php

// Sleep 3s, simulate a long running request
sleep(3);

$host = "localhost";
$db = "sandbox";
$user = "dev";
$pass = "dev";

$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);

$stmt =
  $conn->prepare(
    "insert into blog (blogText, blogTimestamp) values (:blogText, now())");
$stmt->bindParam(':blogText', $_REQUEST['blogText']);
$stmt->execute();

$sql = "select last_insert_id()";
$query = $conn->query($sql);
$row = $query->fetch(PDO::FETCH_ASSOC);
echo "Inserted <em>" . $_REQUEST['blogText'] . "</em> into blog, id is " 
  . $row['last_insert_id()'];

?>

</div>

AJAX 调用的状态/结果显示在 HTML 页面的 div 元素中。

关于php - 如何将文本框的值存储到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160888/

相关文章:

php - 选择查询时格式化日期列

php - 创建符号链接(symbolic link)以访问 linux 中的目录

javascript - 使用 CORS 处理另一个站点上的重新身份验证

mysql - 使用 mysqldump 转储和加载 MySQL InnoDB 数据库的最快方法是什么?

java - Liquibase:组织变更日志的最佳实践

php - 用于显示多对多数据库结果的 MySQL 语法

php - 从字符串php构建多维数组

javascript - HTMLElement focus() 方法未捕获类型错误

javascript - 如何在 D3 中悬停时为图像添加边框

php - 从 Codeigniter 查询中获取正确的数据?