【问题标题】:Validating a cloned/repeatable input using PHP and/or jQuery使用 PHP 和/或 jQuery 验证克隆/可重复输入
【发布时间】:2012-09-29 08:01:13
【问题描述】:

我正在尝试使用jQuery.clone() 在 PHP 中创建一个可重复的字段(带有图像预览的上传图像输入)。一切正常,除了克隆数据的返回。

在我的 PHP 文件中,我有:

$i = 0;
$valid_input['image'] = $input['image'][$i];

然后

return $valid_input;

用于图片上传输入:

<input type="hidden" class="image" name="image[image]['.$i.']" value="'.$theme_options['image'].'" />
    <input type="button"  class="upload-button button" value="'. __( 'Upload Image', 'theme' ).'" />

$i 的值设置为 0 并与 jQuery 克隆一起计数。

问题是提交后克隆的字段消失了。 原始字段“image['image'][0]”被保存并返回有效,但其他字段(image['image'][1]、[2]、[3]...)不验证!

如果我像这样更改$i 的值:

$i = 1;
$valid_input['image'] = $input['image'][$i];

那么原来的输入不提交,只提交clone,因为原来是[0],clone是[1],但是提交后clone返回为[0]。

我尝试过这样的事情:

$i = 0;
$valid_input['image'] = $input['image'][$i];
$i++; //-- I know, I'm stupid...this will not count the input!

请问,有人可以帮我解决这个问题吗? 我怎样才能验证克隆的字段? 我的谷歌搜索都被标记为已访问,我发誓我没有找到任何可以解决这个问题的方法! 任何帮助将不胜感激,在此先感谢!

【问题讨论】:

    标签: php jquery validation clone


    【解决方案1】:

    请试试这个

    使用输入名称作为 image[],这样您就可以通过使用 foreach 来将 image 的值作为一个简单的数组进行验证。

    即,

    $arrValue = $_POST['image'];
    
    foreach ($arrValue as $key=>$value) {
    //do the operations here
    
    } 
    

    【讨论】:

    • 感谢您的回复!我试过你的代码,它验证了,但是当我提交克隆的字段时,它会覆盖以前的输入并且克隆的字段消失了!
    【解决方案2】:

    你的意思是这样的:

    for($i = 0; $i < count( $input["image"] ); $i++) {
       echo $input["image"][$i];
    }
    

    还是我误会你了

    【讨论】:

    • 感谢您的回复!您的代码似乎有效,当我提交表单时,我注意到每个字段都有自己独立存储的数据,但是克隆的字段不会在屏幕上返回,它会消失但不会覆盖前一个字段。当我再次克隆时,可以看到我在克隆字段的描述字段(在输入的“自动完成”功能中)键入的值,因此,它已作为独立字段存储在数据库中!我希望你明白我的意思! =X
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多