【问题标题】:Multiple Variables Explode and Insert to MySQL多变量爆炸并插入到 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 循环和迭代。很简单。我对如何在这种情况下插入数据感到很生气。任何帮助将不胜感激。

【问题讨论】:

    标签: php jquery mysql ajax


    【解决方案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" 你是对的序列化方法
    猜你喜欢
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    相关资源
    最近更新 更多