【问题标题】:PHP validation of form elements created with jquery使用 jquery 创建的表单元素的 PHP 验证
【发布时间】:2013-12-20 18:15:33
【问题描述】:

希望标题能传达你的想法,但基本上,我有一个 php 页面,其中包含几个可以通过 jquery 扩展的选择表单项,因此用户可以在他们的订单中添加多个项目。

<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 的 id 为 orderN,其中 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);
});

【问题讨论】:

  • 所以您只需要考虑添加和删除 div 的情况下生成的 div 数量吗?
  • 我认为应该这样做。我可以从那里创建一个数组并验证数组中的每个项目。可能是一个漫长的过程,但它应该会奏效。最好创建一个动态变量名称,例如 $movie+number,但我可以解决这个问题。
  • 考虑使用name="order[]",因为这将在您发布表单时创建一个 PHP 数组。您可以使用data-line="1" 进行简单的 jQuery 引用。

标签: javascript php jquery validation


【解决方案1】:

第一种方法

在用户添加时创建数组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)

然后你可以通过服务器以所需的格式发送它,你可以做同样的事情来删除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    相关资源
    最近更新 更多