Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从动态字段事件向数据库添加多行_Php_Jquery_Mysql - Fatal编程技术网

Php 从动态字段事件向数据库添加多行

Php 从动态字段事件向数据库添加多行,php,jquery,mysql,Php,Jquery,Mysql,在我的表单中,JS中有一个动态事件,它添加了另一个字段块,以便我的用户可以添加另一个地址: <script type="text/javascript"> $(document).ready(function() { $('#btnAdd').click(function() { var $address = $('#address'); var num = $('.clonedAddress').length; var newNum = new Num

在我的表单中,JS中有一个动态事件,它添加了另一个字段块,以便我的用户可以添加另一个地址:

<script type="text/javascript">
$(document).ready(function() {
  $('#btnAdd').click(function() {
    var $address = $('#address');
    var num = $('.clonedAddress').length; 
    var newNum = new Number(num + 1);
    var newElem = $address.clone().attr('id', 
    'address' + newNum).addClass('clonedAddress');

//set all div id's and the input id's
newElem.children('div').each (function (i) {
this.id = 'input' + (newNum*11 + i);
    });

newElem.find('input').each (function () {
this.id = this.id + newNum;
this.name = this.name + newNum;
    });

    if (num > 0) {
        $('.clonedAddress:last').after(newElem);
    } else {
        $address.after(newElem);
    }


    $('#btnDel').removeAttr('disabled');

    if (newNum == 3) $('#btnAdd').attr('disabled', 'disabled');
});
$('#btnDel').click(function() {
    $('.clonedAddress:last').remove();
    $('#btnAdd').removeAttr('disabled');
    if ($('.clonedAddress').length == 0) {
    $('#btnDel').attr('disabled', 'disabled');
    }
});
$('#btnDel').attr('disabled', 'disabled');
});
</script>
但是,当我执行表单操作时,当我单击“添加另一个地址”按钮时,页面只会刷新:

<form action="address.php" method="post" name="regForm" id="regForm" >
这些是我的领域:

if(empty($err)) {
for($i = 0; $i < 10; $i++)
    {
       $Street = $_POST['Street'][$i];
       $Line2 = $_POST['Line2'][$i];
       $Line3 = $_POST['Line3'][$i];
       $Town = $_POST['Town'][$i];
       $Postcode = $_POST['Postcode'][$i];
       $Country = $_POST['Country'][$i];
       $Tele = $_POST['Tele'][$i];
       $Fax = $_POST['Fax'][$i];
       $Type = $_POST['Type'][$i];
       $Mobile = $_POST['Mobile'][$i];
$sql_insert = "INSERT into `address`
       (`Street`,`Line2`,`Line3`,`Town`, `Postcode` ,`Country`,`Tele`,`Fax`,`Type`
       ,`Mobile`            )
VALUES
       ('$Street','$Line2','$Line3','$Town','$Postcode','$Country',
       '$Tele','$Fax','$Type', '$Mobile'
    )";
mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());     
    }
我希望所有地址都转到mysql数据库。
我希望这是清楚的

定义按钮如下:

我的简短测试导致我被firefox视为提交类型输入。这意味着FooBar和FooBar是等效的

您可能还希望简化javascript代码。您可以对输入名称使用数组表示法:

<input type="text" name="street[]" />
<input type="text" name="zip[]" />

<input type="text" name="street[]" />
<input type="text" name="zip[]" />
或者只是在你的页面上隐藏一个完整的集合并克隆它,然后追加。我相信我们的jQuery专业人员会知道更好的解决方案

最后:请用


你能不能也显示这个“添加另一个地址”按钮?你没有把它定义为,是吗?请注意:在插入mysql查询之前,请先对字符串值进行sanatize。您很容易受到SQL注入攻击的影响。看,我有四个按钮,一个添加地址,一个删除地址,一个向我的数据库提交表单和一个清除表单

添加地址删除地址

是的,我已经有了类似这条街的输入信息*按钮现在可以工作了,谢谢。提交时出现以下错误:警告:strip_标记期望参数1为字符串,第100行C:\xampp\htdocs\euisample\dbc.php中给出的数组为-$'。cloneddress:last'。删除;注意:第33行的C:\xampp\htdocs\euisample\address.php中未定义的偏移量:2注意:第34行的C:\xampp\htdocs\euisample\address.php中未定义的偏移量:2等在有效的html文档中不能有多个id=Street的输入。无论如何,您不需要ID。警告:strip_标记要求参数1为字符串,在第100行的C:\xampp\htdocs\euisample\dbc.php中给出的数组似乎是在第100行的C:\xampp\htdocs\euisample\dbc.php中为strip_标记传递了一个数组而不是字符串。很乐意帮忙!函数过滤器$data{$data=trimhtmlentitiesstrip_标记$data;if get\u magic\u quotes\u gpc$data=stripslashes$data;$data=mysql\u real\u escape\u string$data;返回$data;}什么是dbc?我不擅长透视,但我认为你可能会做一些类似于strip_tags$\u POST['Street']的事情,而不是strip_tags$\u POST['Street'][$I],并且通知可能来自你的$I=0$i<10$i++循环。您可能希望将其更改为for$i=0$我$('#address').append( '<div>' + '<input type="text" name="street[]" />' + '<input type="text" name="zip[]" />' + '</div>' );
$Street = mysql_real_escape_string($_POST['Street'][$i]);
// and so on for the other values.