2013-12-20 32 views
0

希望标题能够得到这个想法,但基本上,我有一个PHP页面,其中包含一些可以通过jQuery进行扩展的选择表单项,因此用户可以添加多个项目到他们的订单。使用jquery创建的表单元素的PHP验证

<div class="orderSet" id="order1"> 
<select id="movie1" class="movie" name="movie"> 
    <option value="" disabled selected>Select movie</option> 
    <option value="godfather">The Godfather</option> 
      blah...blah.... 
    <option value="titanic">Titanic</option> 
</select><br> 
<select id="medium1" class="medium" name="medium"> 
    <option value="" disabled selected>Select format</option> 
    <option value="dvd">Movie on DVD</option> 
    <option value="bluray">Movie on BluRay</option> 
    <option value="poster">Original movie poster</option> 
</select> 
</div> 

新div有orderN的ID,其中N是由jQuery代码分配的数量,同样地同样适用于电影和介质ID的。有没有办法获得这个数字,所以我可以创建一个订单项目数组?我很好地将数字反馈给脚本,以便验证的页面从正确数量的项目开始。

脚本创建这些额外的div是

$("#add").click(function() { 
    var intId = $("#orderItem div").length + 1; 
    var orderSet = $("<div class=\"orderSet\" id=\"order" + intId + "\"/>"); 
    var movie = $("<select id=\"movie" + intID + "\" class=\"movie\"><option value=\"\" disabled selected>Select movie</option><option value=\"godfather\">The Godfather</option>...more options...<option value=\"titanic\">Titanic</option></select><br>"); 
    var medium = $("<select id=\"medium" + intID + "\" class=\"medium\"><option value=\"\" disabled selected>Select format</option><option value=\"dvd\">Movie on DVD...more options...</select>"); 
    var removeButton = $("<input type=\"button\" class=\"remove\" value=\"remove\" />"); 
    removeButton.click(function() { 
     $(this).parent().remove(); 
    }); 
    orderSet.append(movie); 
    orderSet.append(medium); 
    orderSet.append(removeButton); 
    $("#orderItem").append(orderSet); 
}); 
+0

做同样的事情,所以,你只是想div的号产生的考虑股利增加和删除? –

+0

我认为应该这样做。我可以从那里创建一个数组并验证数组中的每个项目。可能是一个漫长的过程,但它应该工作。很高兴创建一个动态变量名称,像$电影+号码,但我可以解决这个问题。 – Modred

+0

考虑使用'name =“order []”',因为这将在您发布表单时创建一个PHP数组。对于简单的jQuery引用,你可以使用'data-line =“1”''。 – rybo111

回答

0

第一种方法

创建用户加法数组var userSelection = new Array()

userSelection.push(intId) 
上去除

// Find and remove item from an array 
var i = userSelection.indexOf(intId); 
if(i != -1) { 
    userSelection.splice(i, 1); 
} 

方式二:

可以保持在sesisonStorage用户状态,创建加减或单个阵列阵列不管你的感觉是很好,它的sessionStorage

var addition = new Array(); 

存储上添加点击添加OrderItem的它

addition.push(intId) // intId generated in your code 
sessionStorage.setItem('added', addition) 

在第二次加入点击

sessionStorage.getItem('added').push(intId) 

然后你就可以在需要的格式在整个服务器发送此,您可以去除