多个变量爆炸并插入MySQL

时间:2015-09-07 16:27:08

标签: php jquery mysql ajax

我在网站上检查了可能的解决方案,但没有找到解决方案。我有一个表单,其中有两个文本字段供用户输入姓名和手机号码。默认情况下,该页面仅显示两个字段。如果用户希望他可以添加更多。问题是,我无法将这些多个数据插入到DB中。请看下面。发布图片我没有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和Auto Increment。我的问题是如何在同一行插入员工姓名和手机。假设我们从表单中得到A,B,C和手机号码为100,200,300的员工姓名,我需要使用这些值插入MySQL DB。因此A将拥有移动100,B将拥有200等等......如果我只有一个爆炸,我可以轻松使用foreach循环并迭代。非常简单。我对如何使用此方案插入数据感到很生气。任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是创建表单并在输入中使用数组

<input type="text" name="addstaffname[]" value="" />
<input type="text" name="addstaffmob[]" value="" />

然后使用ajax发送整个表单

$("#form").ajaxForm({url: 'server.php', type: 'post'});

(ajaxForm是一个jquery插件ajaxForm

当你在php中收集数据时,你只需要做一个关键变量,就像这样。

$addstaffname = $_POST['addstaffname'];
$addstaffmob  = $_POST['addstaffmob'];

foreach($addstaffname as $key=>$name){
  echo "Your name is " . $name . " and your phone is " . $addstaffmob[$key];
}

显然你需要对vars,sql注入等进行强制转换