多变量爆炸并插入到 MySQL
Posted
技术标签:
【中文标题】多变量爆炸并插入到 MySQL【英文标题】:Multiple Variables Explode and Insert to MySQL 【发布时间】:2015-12-03 06:08:27 【问题描述】:我在网站上检查了可能的解决方案,但没有找到解决方案。我有一个表单,其中有两个文本字段供用户输入姓名和手机号码。默认情况下,该页面仅显示两个字段。如果用户想要,他可以添加更多。问题是,我无法将这些多个数据插入数据库。请看下文。我没有 10 名声望来发布图片。因此,我提供了一个外部链接。
1) 初始形式 http://postimg.org/image/qiojxjrcx/
2) 点击加号,用户可以添加更多字段 http://postimg.org/image/zaetpokbx/ 3) 使用 Jquery 动态添加的字段具有唯一的 id 和一个类。下面的脚本用于获取员工姓名和手机号码的值 a) 获取员工姓名的脚本
var addstaffname = new Array();
$('input[class="addstaff"]').each(function()
addstaffname.push(this.value);
);
b) 获取手机号码的脚本
var addstaffmob = new Array();
$('input[class="addstaffmob"]').each(function()
addstaffmob.push(this.value);
);
我通过使用 Staff Name 和 Mobile 的类来获取值。通过 ajax,我在 php 中发布了这些值。
$.ajax(
type:"POST",
url:"../../ajax.php",
data:'addstaffname='+addstaffname+'&addstaffmob='+addstaffmob,
cache:false,
success: function(data)
alert(data);
)
在 ajax.php 中,我将这些值存储到变量中。if(isset($_POST['addstaffname']))
$addstaffname = $_POST['addstaffname'];
$addstaffmob = $_POST['addstaffmob'];
$addstaffnameexploded = explode(',',$addstaffname);
$addstaffmobexploded = explode(',',$addstaffmob);
我正在使用explode,因为我有多个值,我得到的所有值都是来自Jquery 的CSV。我有一个名为 staff 的表,包含三列,staff_id、staff_name、staff_mobile 和 staff_id 是 PK 和自动增量。我的问题是如何在同一行中插入员工姓名和手机。假设我们从表格中获得员工姓名为 A、B、C 和手机号码为 100,200,300,我需要将这些值插入 mysql DB。所以 A 将有 100 个移动设备,B 将有 200 个等等......如果我只有一个爆炸,我可以轻松地使用 foreach 循环和迭代。很简单。我对如何在这种情况下插入数据感到很生气。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:我认为最好的方法是创建一个表单并在输入中使用一个数组
<input type="text" name="addstaffname[]" value="" />
<input type="text" name="addstaffmob[]" value="" />
然后使用 ajax 发送整个表单
$("#form").ajaxForm(url: 'server.php', type: 'post');
(ajaxForm是一个jquery插件ajaxForm)
当你在 php 中收集数据时,你只需要对它的一个关键变量做一个 foreach ,有些像这样。
$addstaffname = $_POST['addstaffname'];
$addstaffmob = $_POST['addstaffmob'];
foreach($addstaffname as $key=>$name)
echo "Your name is " . $name . " and your phone is " . $addstaffmob[$key];
显然您需要对 vars 进行强制转换,用于 sql 注入等
【讨论】:
非常感谢。我使用了序列化和 foreach 循环,它起作用了。但是我使用了 $.ajax 而不是 $.ajaxForm。您能否告诉我在使用 $.ajaxForm 时如何获取成功信息(任何小提琴都很棒) 对不起,我使用了一个 jquery 插件示例 "malsup.com/jquery/form" 你是对的序列化方法以上是关于多变量爆炸并插入到 MySQL的主要内容,如果未能解决你的问题,请参考以下文章