如何修改 PHP/Jquery/Ajax 脚本以拥有多个表单字段

2024-06-24

我有一个 php/Ajax/Jquery 脚本,它将表单字段插入 MySQL 并更新页面,当您点击提交时无需刷新。我希望脚本提交四个表单字段,而不是仅一个。

我已经更新了数据库表add_delete_record还有 3 个附加字段:余额,帐号 and monthly,加上已经存在的内容字段。

下面的代码可能有点多余,因为我只需要修改几行,但我认为这可以回答所有问题。

这是 php 和 html 页面:

<div class="content_wrapper">
<ul id="responds">
<?php
//include db configuration file
include_once("config.php");

//MySQL query
$Result = mysql_query("SELECT id,content FROM add_delete_record");

//get all records from add_delete_record table
while($row = mysql_fetch_array($Result))
{
echo '<li id="item_'.$row["id"].'">';
echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$row["id"].'">';
echo '<img src="images/icon_del.gif" border="0" />';
echo '</a></div>';
echo $row["content"].'</li>';
}

//close db connection
mysql_close($connecDB);
?>
</ul>
<div class="form_style">
<textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea>
<button id="FormSubmit">Add record</button>
</div>
</div>

这是它发布到的 php:

<?php
//include db configuration file
include_once("config.php");

//check $_POST["content_txt"] is not empty
if(isset($_POST["content_txt"]) && strlen($_POST["content_txt"])>0)
{

    //sanitize post value, PHP filter FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH
    $contentToSave = filter_var($_POST["content_txt"],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);

    // Insert sanitize string in record
    if(mysql_query("INSERT INTO add_delete_record(content) VALUES('".$contentToSave."')"))
    {
        //Record is successfully inserted, respond to ajax request
        $my_id = mysql_insert_id(); //Get ID of last inserted record from MySQL
        echo '<li id="item_'.$my_id.'">';
        echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$my_id.'">';
        echo '<img src="images/icon_del.gif" border="0" />';
        echo '</a></div>';
        echo $contentToSave.'</li>';
        mysql_close($connecDB);

    }else{
        //output error

        //header('HTTP/1.1 500 '.mysql_error());
        header('HTTP/1.1 500 Looks like mysql error, could not insert record!');
        exit();
    }

}
elseif(isset($_POST["recordToDelete"]) && strlen($_POST["recordToDelete"])>0 && is_numeric($_POST["recordToDelete"]))
{//do we have a delete request? $_POST["recordToDelete"]

    //sanitize post value, PHP filter FILTER_SANITIZE_NUMBER_INT removes all characters except digits, plus and minus sign.
    $idToDelete = filter_var($_POST["recordToDelete"],FILTER_SANITIZE_NUMBER_INT);

    //try deleting record using the record ID we received from POST
    if(!mysql_query("DELETE FROM add_delete_record WHERE id=".$idToDelete))
    {
        //If mysql delete record was unsuccessful, output error
        header('HTTP/1.1 500 Could not delete record!');
        exit();
    }
    mysql_close($connecDB);

}else{

    //Output error
    header('HTTP/1.1 500 Error occurred, Could not process request!');
    exit();
}
?>

这是 JQuery

$(document).ready(function() {
    //##### Add record when Add Record Button is clicked #########
    $("#FormSubmit").click(function (e) {

        e.preventDefault();

        if($("#contentText").val()==="") //simple validation
        {
            alert("Please enter some text!");
            return false;
        }

        var myData = "content_txt="+ $("#contentText").val(); //post variables

        jQuery.ajax({
            type: "POST", // HTTP method POST or GET
            url: "response.php", //Where to make Ajax calls
            dataType:"text", // Data type, HTML, json etc.
            data:myData, //post variables
            success:function(response){
            $("#responds").append(response);
            $("#contentText").val(''); //empty text field after successful submission
            },
            error:function (xhr, ajaxOptions, thrownError){
                alert(thrownError); //throw any errors
            }
        });
    });

    //##### Delete record when delete Button is clicked #########
    $("body").on("click", "#responds .del_button", function(e) {
        e.preventDefault();
        var clickedID = this.id.split("-"); //Split string (Split works as PHP explode)
        var DbNumberID = clickedID[1]; //and get number from array
        var myData = 'recordToDelete='+ DbNumberID; //build a post data structure

        jQuery.ajax({
            type: "POST", // HTTP method POST or GET
            url: "response.php", //Where to make Ajax calls
            dataType:"text", // Data type, HTML, json etc.
            data:myData, //post variables
            success:function(response){
            //on success, hide element user wants to delete.
            $('#item_'+DbNumberID).fadeOut("slow");
            },
            error:function (xhr, ajaxOptions, thrownError){
                //On error, we alert user
                alert(thrownError);
            }
        });
    });
}); 

这不是我的脚本,所以我想我还应该提供一个链接来注明其作者:http://www.sanwebe.com/2012/04/ajax-add-delete-sql-records-jquery-php http://www.sanwebe.com/2012/04/ajax-add-delete-sql-records-jquery-php


我不是 php 专家,但这应该可以帮助您完成:

首先更改主页上的表单区域:

<div class="form_style">
    <textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea><br/>
    <input type="text" id="balance" /><br/>
    <input type="text" id="acctNum" /><br/>
    <input type="text" id="monthly" /><br/>
    <button id="FormSubmit">Add record</button>
</div>

那么你的 myData 看起来像这样:

var myData = {
    content_txt: $("#contentText").val(),
    balance: $("#balance").val(),
    acctNum: $("#acctNum").val(),
    monthly: $("#monthly").val()
};

然后在 ajax 响应中:

$("#contentText").val(''); //empty text field after successful submission
$("#balance").val('');
$("#acctNum").val('');
$("#monthly").val('');

最后是 PHP:

//sanitize post value, PHP filter FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH
$content = filter_var($_POST['content_txt'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$balance = filter_var($_POST['balance'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$account = filter_var($_POST['acctNum'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$monthly = filter_var($_POST['monthly'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);


$qry= "INSERT INTO add_delete_record(content,balance,account,monthly) VALUES('".$content."','".$balance."','".$account."','".$monthly."')";


// Insert sanitize string in record
if(mysql_query("INSERT INTO add_delete_record(content,balance,account,monthly) VALUES('".$content."','".$balance."','".$account."','".$monthly."')"))
{
    //Record is successfully inserted, respond to ajax request
    $my_id = mysql_insert_id(); //Get ID of last inserted record from MySQL
    echo '<li id="item_'.$my_id.'">';
    echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$my_id.'">';
    echo '<img src="images/icon_del.gif" border="0" />';
    echo '</a></div>';
    echo $content.'</li>';
    mysql_close($connecDB);

}else{
    //output error

    //header('HTTP/1.1 500 '.mysql_error());
    header('HTTP/1.1 500 Looks like mysql error, could not insert record!');
    exit();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改 PHP/Jquery/Ajax 脚本以拥有多个表单字段 的相关文章

  • 设置三个输入数字的最大值

    我有三个输入数字
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • 如何摆脱 WordPress function.php 中的“SiteLock-PHP-FILEHACKER-of.UNOFFICIAL”

  • 无法在 PHP 中接收 JSON POST 请求

    我正在将 JSON 对象从 Java 传递到 PHP 我正在使用 jdk 1 8 和 WAMPserver 下面是Java代码 import java io IOException import org apache http client
  • 暂停或停止整页而不破坏

    我有一个正常滚动的页面 页面上有一个锚点 它会弹出一个模式 我在其中初始化 fullpage js 到目前为止 效果很好 但是当用户单击关闭图标时 我希望模式窗口关闭 并使 fullpage js 暂停或停止 以便禁用全页滚动效果 除非用户
  • LightningChart JS - LineSeries / Progressive X 的损坏

    我在使用 LightningChart 时遇到了一个有趣的问题 它似乎会破坏或以其他方式减少我的数据 具体取决于它与图表的 DateOrigin 的距离 我的数据是每秒 1000 个样本 我试图一次显示 1 2 周的数据 我正在使用 Cha
  • 如何在传单地图上显示热图

    我想在我的传单地图上显示热图 我使用了 heatmap jshttps github com pa7 heatmap js https github com pa7 heatmap js但它最终只是显示 未捕获的类型错误 无法分配给只读属性
  • 在 ReactJS 中更改 URL onClick

    在我的项目中我有一个TabComponent它显示 3 个选项卡 首页 热门 全部 现在 我正在使用context反应维持 activetab它存储当前选项卡 toggleTab改变的方法activetab using setState 选
  • 构建、部署、配置和回滚所需的 Jenkins 指南,保留 5 个版本

    我对詹金斯很陌生 有一定的了解 但需要进一步的指导 我在 Git 存储库上有一个 PHP 应用程序 它使用 Composer 具有资产 具有用户上传的媒体文件 使用 Memcache Redis 具有一些代理 工作人员 并且具有迁移文件 到
  • 从条件表中获取 WHERE 子句的条件

    我创建了以下简单的DataModel 我用以下数据填充了表格 1 桌子Customer INSERT INTO test customer CustomerName Country RegistrationDate VALUES Custo
  • Google Maps API - 调整大小会生成空白区域

    我正在研究一个看起来非常简单的功能 但却引起了一些头痛 我使用 GIS 并将其与 Google 地图集成 其中一位客户要求能够打开一个仅显示地图的单独弹出窗口 打开窗口不是问题 但当我尝试扩展包含地图的 IFrame 的宽度时 为了适应窗口
  • 如何从 Instagram 的 media_preview 原始数据重新创建预览?

    如果您从 Instagram 的 API 获取 JSON 数据 您会发现media previewkey 其值是一些 Base64 编码的数据 它看起来确实像一些非常小的预览二进制数据 也许是压缩的 Take 这个帖子 https www
  • React cloneElement 未设置键

    我正在构建一个动态生成键的表控件 我理解这可能不是一个好主意 我想键应该与其代表的数据唯一关联 否则 React 只能为我们生成唯一的 id 但无论哪种方式似乎没有设置按键 我不知道为什么 表中的行是用可以找到的函数生成的here http
  • 在 imagick php 中使用 svg 原始数据生成 SVG 图像

    我正在尝试使用从 Fabric js 获取的 svg 原始数据创建 svg 图像 我使用下面的代码使用 svg 原始数据生成 svg 但它无法正常工作 public function generate svg raw svg prefix
  • cURL 错误 28:5001 毫秒后解析超时

    我使用 WordPress 最近将我的网站从 cpanel 主机移动到带有 directadmin 面板的 Linux 服务器 转账后立即发现客户在通过EDD插件下载时出现以下错误 cURL 错误 28 5001 毫秒后解析超时 我也遇到了
  • 如何在数据库中存储世界各地的所有地理位置?

    我在一家旅游网站工作 我需要存储游客去过的旅游景点 我需要位置表中的地点是唯一的 以便我可以知道特定地点的受欢迎程度等 我还需要存储在我身边的所有国家 州 城市 因为我不能依赖用户输入 数据库是MySQL 看到这些位置的可用数据集 我发现存
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer
  • 在用户单击之前图像不会绘制在画布上?

    我使用执行类似以下操作的函数绘制几张图像 context drawImage img width 2 1 height 2 1 width height 我读过 我需要等待图像加载后才能绘制它 如下所示 img onload functio
  • 如何将国家/地区代码与电话号码分开?

    我的数据库中有很多电话号码 例如 1 123 456 7890 我要做的是将国家 地区拨号代码 在本例中为美国 加拿大的 1 与电话号码分开 我尝试创建所有国家 地区的 JSON 列表 并在加载页面时将电话号码和国家 地区代码分开 它工作正
  • ASP.NET MVC3 Ajax.ActionLink - 条件确认对话框

    我有一个 Ajax ActionLink 仅当满足某些条件 用户有未保存的更改 时 我才希望显示一个确认对话框 我创建了一个 JavaScript 函数 它根据需要显示确认对话框 并根据响应返回 true 或 false 我将其绑定到 Ac

随机推荐

  • 将数组初始化为空白自定义类型 OCAML

    我设置了自定义数据类型 type vector a float b float 我想初始化一个向量类型的数组 但不包含任何内容 只是一个长度为 x 的空数组 下列 let vecarr Array create max seq length
  • 递归地将整个文件夹添加到存储库

    我正在尝试向 GitHub 上的 master 分支添加一个分支 并将一个文件夹推送到该分支上 分支的文件夹结构如下所示 Social App Source Code Dev Trunk Social App 以及所有源代码文件都在最后一个
  • 在保存到 Rails 之前将输入转换为整数

    我有一组代表用户生日的选择输入 出生年份 出生月份和生日 我想像这样验证出生年份 validates inclusion of birthyear in gt Date today year 50 Date today year 12 因此
  • 如何使用 Apache Hello World 将最新 (2020) Django 安装到 AWS EC2 Linux 2 实例和服务器

    我缺少什么 这是我第一次尝试使用 Django Django 中内置的服务器可以在本地很好地提供该文件 但我无法让 Apache 执行相同的操作 以下是我在一个全新的 干净的 Linux 2 实例上所做的事情 sudo yum update
  • karma.conf.js 未捕获引用错误:谷歌未定义

    当我尝试运行 karma 测试运行程序时 我从我的一个文件中收到如下错误 说我的库 google 未定义 Chrome 36 0 1985 Mac OS X 10 9 4 ERROR Uncaught ReferenceError goog
  • 从 PHP 连接到安全 FTP 服务器

    这个问题符合这个问题 https stackoverflow com questions 2170720 secure ftp connection using php 我正在尝试连接到安全的 FTP 服务器 但它无法连接 奇怪的是我能够执
  • 第二次触摸动画

    尝试掌握 Xcode 并且在过去几周似乎取得了一些进展 有谁知道自定义按钮可以在第二次单击时执行一组不同的动画的方法 假设我有一个自定义按钮 它是马里奥的 当我单击它时 他从屏幕中间跑出屏幕右侧 然后从屏幕左侧跑回中间 他也会发出噪音 我使
  • 警告:不要将 Android 上下文类放置在静态字段中;这是内存泄漏(也会破坏即时运行)

    安卓工作室 不要将 Android 上下文类放置在静态字段中 这是一个 内存泄漏 并且还会破坏即时运行 所以有2个问题 1 你如何称呼startService来自没有上下文静态变量的静态方法 2 如何从静态方法发送 localBroadca
  • 创建一个引用计数的图形

    看来在 matplotlib 中创建图形的标准方法并不像我在 python 中期望的那样 默认调用fig matplotlib figure in a 循环将保留创建的所有图形 并最终耗尽内存 有quite https stackoverf
  • python 将句子标记为单词

    我想从不同的句子中提取信息 所以我使用 nltk 将每个句子划分为单词 我使用以下代码 words for i in range len sentences words append nltk word tokenize sentences
  • iOS上使用NSURLProtocol实现AVPlayer边下载边播放

    我正在尝试在我的服务器上播放 mp4 视频 并且我想同时将该视频缓存到磁盘 我知道我可以只使用 2 个请求来执行此操作 一个用于下载 另一个由 AVPlayer 创建的用于播放视频 但这会浪费网络带宽 因此 我只需要使用一个外部请求来下载数
  • 如何在主屏幕上设置 Fire TV“图标”?

    我有一个 Fire TV 应用程序 该应用程序也将在普通 Android TV 上发布 以及一些搭载 Android 非 Android TV 的电视 也可能在平板电脑上发布 因此 我为 Android TV 设置了横幅 并且工作正常 该图
  • 如何将Spark DataFrame插入Hive内表?

    以追加模式将 DF 插入 Hive 内部表的正确方法是什么 看来我们可以使用 saveAsTable 方法直接将 DF 写入 Hive 或将 DF 存储到临时表然后使用查询 df write mode append saveAsTable
  • 从非托管代码传递指针

    我有一个导入 C dll 的 C 项目 该 dll 有以下功能 int primary read serial int handle int return code int serial int length 我想访问串行参数 我实际上已经
  • C# 设置 FontDialog 仅显示 TrueType 字体

    几乎每个论坛都有人问过这个问题 包括here https stackoverflow com questions 5027001 only truetype fonts are supported this is not a truetyp
  • 将具有混合内容的命名列表转换为数据框

    是否有更好更好的方法将具有混合内容的命名列表转换为数据框架 工作示例 my list lt list a 1 0 b foo c TRUE my df lt data frame key names my list stringsAsFac
  • Matplotlib 中经常使用的不寻常的 Python 语法元素

    一个附带条件 我的问题的核心语法元素是 Python 语言 然而 这个元素经常出现在 Matplotlib 库中 这是我见过它的唯一上下文 因此 我不确定这是一般的 Python 语法问题还是特定于库的问题 我所知道的是 我找不到任何要点
  • 在gnuplot中绘制两点之间的线

    我有一个 csv 文件 其格式如下 有四列 作为MWE xcoord1 ycoord1 xcoord2 ycoord2 0 1 0 2 0 4 0 3 0 5 0 3 0 7 0 5 我想从每个xcoord1 ycoord1 to xcoo
  • 我可以将 Entity Framework 6 与 Visual Studio 2010 一起使用吗?

    我们的开发团队 和构建服务器 成功地将 Visual Studio 2010 和 Visual Studio 2012 混合用于我们的应用程序 然而 自从从 EF5 升级到 EF6 后 我们似乎不再能够使用 VS2010 进行构建 具体来说
  • 如何修改 PHP/Jquery/Ajax 脚本以拥有多个表单字段

    我有一个 php Ajax Jquery 脚本 它将表单字段插入 MySQL 并更新页面 当您点击提交时无需刷新 我希望脚本提交四个表单字段 而不是仅一个 我已经更新了数据库表add delete record还有 3 个附加字段 余额 帐