2013-12-10 71 views
0

从输入页面我发送数据的表单数量可变。我让每个新表格都有下一个号码。从可变长表格数据插入到数据库

name2 
date3 
name4 
date5 
name6 
date7 
etc... 

这个问题开始时,我试图捕获他们在我的Db表中有两列“名称”和“日期”。 这是使用代码即时通讯:

$i = 1; 
while(isset($_POST["name".$i])) 
{ 
    $cantidad = $_POST["name".$i]; 
    $value = $_POST["date".($i+1)]; 
    $query = "INSERT INTO `tickets` SET `name` = $cantidad, `date` = $value"; 
    mysql_query($query); 
    $i += 2; 
} 

基本上,由于形式进来剥(姓名和日期),我需要他们在“名称”和“日期”一栏正确的顺序插入。这个东西是由于某些原因代码不惰性。

我该怎么做? 在此先感谢。

+0

什么是您的代码输入数据库?你可以显示 –

+0

我发布了一个小提琴,你可以看到输入页面。页面工作正常,但似乎我不能从表格中输入东西 – Iznogud

回答

0

lznogud,

我做你的代码进行一些修改,因此,您需要做一些在PHP文件即testProces.php

http://jsfiddle.net/mNkub/

$('#addScnt').live('click', function() { 
      $('<label for="ticketCantidad"><input type="text" id="ticketCantidad" size="20" name="ticketCantidad[' + i +']" value="" placeholder="Valor de Tickets" /></label>').appendTo(scntDiv); 
      //i++; 
      $('<label for="ticketValue"><input type="text" id="ticketValue" size="20" name="ticketValue[' + i +']" value="" placeholder="Cantidad de Tickets" /></label><p></p>').appendTo(scntDiv); 
      i++; 
      return false; 
    }); 

现在您获得的html结构将为

<input type="text" id="ticketCantidad" size="20" name="ticketCantidad[2]" value="" placeholder="Valor de Tickets"> 
<input type="text" id="ticketValue" size="20" name="ticketValue[2]" value="" placeholder="Cantidad de Tickets"> 

那么下一个会是:

<input type="text" id="ticketCantidad" size="20" name="ticketCantidad[3]" value="" placeholder="Valor de Tickets"> 
<input type="text" id="ticketValue" size="20" name="ticketValue[3]" value="" placeholder="Cantidad de Tickets"> 

现在在php文件,你会得到两个阵列,在POST相同的密钥字段中的数据。然后你可以做如下编码:

if(isset($_POST["ticketCantidad"]) && count($_POST['ticketCantidad'])>0) { 

    foreach($_POST["ticketCantidad"] as $key => $value) { 
     $cantidad = $value; 
     $value = $_POST["ticketValue"][$key]; 
     $query = "INSERT INTO `tickets` SET `name` = $cantidad, `date` = $value"; 
     mysql_query($query); 
    }  

} 

希望这将清除图片。您可能需要在上面的代码中进行一些调整,因为我没有测试过它,只是一次写入。

+0

哦,如果我可以的话,我会拥抱你:)它像一个魅力工作。感谢万万这一个是一个坚强的坚果破解! – Iznogud

+0

我很高兴我可以帮助..你可以添加我的Skype未来:)详细信息在我的个人资料 –

+0

会这样做,再次感谢钱! – Iznogud

0

确保在某个实例之后您将打破循环,否则将会无限循环。

$i = 1; 
while(true) 
{ 
    if(isset($_POST["name".$i])) { 
     $cantidad = $_POST["name".$i]; 
     $value = $_POST["date".($i+1)]; 
     $query = "INSERT INTO `tickets` SET `name` = $cantidad, `date` = $value"; 
     mysql_query($query); 
     $i += 1; 
    } else { 
     continue; 
    } 
} 
+0

这与问题相同,也没有提供解答。 –

+0

@SKV请再检查一次吗? – Parixit

+0

是的,它会工作完全相同,而(isset($ _ POST [“name”。$ i)))也用于同样的目的,不会处于无限循环。尝试复制并在文件中运行 –