jquery 表单重复程序未过帐所有数据

yruzcnhs  于 2023-02-08  发布在  jQuery
关注(0)|答案(1)|浏览(96)
    • bounty将在2天后过期**。回答此问题可获得+50的声誉奖励。Snappysites正在寻找来自声誉良好来源的答案

我的页面上有一个表单重复器,它只发布第一组数据,我已经用多种方法更改了代码,但似乎都不起作用。我检查了页面,当我向重复器添加新行时,ID显示为

kt_ecommerce_add_category_conditions[0][condition_query]
kt_ecommerce_add_category_conditions[1][condition_query]
kt_ecommerce_add_category_conditions[2][condition_query]

虽然当我尝试通过PHP打印数据时,我只得到了第一个结果?我试过foreach,print等。任何帮助都将不胜感激。

<form class="repeater" method="POST" action="test.php" id="updateCatInfo" name="updateCatInfo" enctype="multipart/form-data">
<!--begin::Repeater-->
            <div id="kt_ecommerce_add_category_conditions">
                <!--begin::Form group-->
                <div class="form-group">
                    <div data-repeater-list="kt_ecommerce_add_category_conditions" class="d-flex flex-column gap-3">
                        <div data-repeater-item class="form-group d-flex flex-wrap align-items-center gap-5">
                            <!--begin::Select2-->
                            <div class="w-100 w-md-200px">
                                <select class="form-select" name="condition_type" id="condition_type" data-placeholder="Select an option" data-kt-ecommerce-catalog-add-category="condition_type">
                                    <option></option>
                                    <option value="title">Product Title</option>
                                    <option value="tag" selected>Product Tag</option>
                                    <option value="price">Product Price</option>
                                </select>
                            </div>
                            <!--end::Select2-->

                            <!--begin::Select2-->
                            <div class="w-100 w-md-200px">
                                <select class="form-select" name="condition_equals" id="condition_equals" data-placeholder="Select an option" data-kt-ecommerce-catalog-add-category="condition_equals">
                                    <option></option>
                                    <option value="equal" selected>data 6</option>
                                    <option value="notequal">data 5</option>
                                    <option value="greater">data 4</option>
                                    <option value="less">data 3</option>
                                    <option value="starts">data 2</option>
                                    <option value="ends">data 1</option>
                                </select>
                            </div>
                            <!--end::Select2-->

                            <!--begin::Input-->
                            <input type="text" class="form-control mw-100 w-200px" name="condition_query" id="condition_query" placeholder="" />
                            <!--end::Input-->

                            <!--begin::Button-->
                            <button type="button" data-repeater-delete class="btn btn-sm btn-icon btn-light-danger">X
                           /button>
                            <!--end::Button-->
                        </div>
                    </div>
                </div>
                <!--end::Form group-->

                <!--begin::Form group-->
                <div class="form-group mt-5">
                    <!--begin::Button-->
                    <button type="button" data-repeater-create class="btn btn-sm btn-light-primary">Add another condition
                    </button>
                    <!--end::Button-->
                </div>
                <!--end::Form group-->
            </div>
            <!--end::Repeater-->
</form>

PHP代码:

<?
if(isset($_POST['updateCatInfo'])){
foreach($_POST['kt_ecommerce_add_category_conditions'] as $data){
        print_r($data);
    }
}
?>

正如我所说,我已经尝试了许多不同的选项,并将调整我的PHP代码,一旦我可以返回的数据,虽然检查检查工具,数据似乎没有发送到服务器在所有?
中继器为:
https://github.com/DubFriend/jquery.repeater

eivnm1vs

eivnm1vs1#

我复制了你的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form class="repeater" method="POST" action="test.php" id="updateCatInfo" name="updateCatInfo" enctype="multipart/form-data">
<!--begin::Repeater-->
            <div id="kt_ecommerce_add_category_conditions">
                <!--begin::Form group-->
                <div class="form-group">
                    <div data-repeater-list="kt_ecommerce_add_category_conditions" class="d-flex flex-column gap-3">
                        <div data-repeater-item class="form-group d-flex flex-wrap align-items-center gap-5">
                            <!--begin::Select2-->
                            <div class="w-100 w-md-200px">
                                <select class="form-select" name="condition_type" id="condition_type" data-placeholder="Select an option" data-kt-ecommerce-catalog-add-category="condition_type">
                                    <option></option>
                                    <option value="title">Product Title</option>
                                    <option value="tag" selected>Product Tag</option>
                                    <option value="price">Product Price</option>
                                </select>
                            </div>
                            <!--end::Select2-->

                            <!--begin::Select2-->
                            <div class="w-100 w-md-200px">
                                <select class="form-select" name="condition_equals" id="condition_equals" data-placeholder="Select an option" data-kt-ecommerce-catalog-add-category="condition_equals">
                                    <option></option>
                                    <option value="equal" selected>data 6</option>
                                    <option value="notequal">data 5</option>
                                    <option value="greater">data 4</option>
                                    <option value="less">data 3</option>
                                    <option value="starts">data 2</option>
                                    <option value="ends">data 1</option>
                                </select>
                            </div>
                            <!--end::Select2-->

                            <!--begin::Input-->
                            <input type="text" class="form-control mw-100 w-200px" name="condition_query" id="condition_query" placeholder="" />
                            <!--end::Input-->

                            <!--begin::Button-->
                            <button type="button" data-repeater-delete class="btn btn-sm btn-icon btn-light-danger">X
</button>
                            <!--end::Button-->
                        </div>
                    </div>
                </div>
                <!--end::Form group-->

                <!--begin::Form group-->
                <div class="form-group mt-5">
                    <!--begin::Button-->
                    <button type="button" data-repeater-create class="btn btn-sm btn-light-primary">Add another condition
                    </button>
                    <!--end::Button-->
                </div>
                <!--end::Form group-->
            </div>
            <!--end::Repeater-->
    <button type="submit" id="kt_ecommerce_add_category_submit" name="kt_ecommerce_add_category_submit">Submit</button>
</form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.repeater/1.2.1/jquery.repeater.min.js" integrity="sha512-foIijUdV0fR0Zew7vmw98E6mOWd9gkGWQBWaoA1EOFAx+pY+N8FmmtIYAVj64R98KeD2wzZh1aHK0JSpKmRH8w==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script>
    $(document).ready(function () {
        $('.repeater').repeater();
    });
    </script>
</body>
</html>

然后创建一个名为test.php的PHP文件,直接将表单提交给,如下所示:

<?php
echo "<pre>";
if(isset($_POST['kt_ecommerce_add_category_submit'])){
foreach($_POST['kt_ecommerce_add_category_conditions'] as $data){
        print_r($data);
    }
}
//print_r($_POST);

在提交表单时,我的PHP文件中有foreach代码,我得到了下面的数组:

Array
(
    [condition_type] => tag
    [condition_equals] => equal
    [condition_query] => test1
)
Array
(
    [condition_type] => title
    [condition_equals] => starts
    [condition_query] => test2
)

当我提交表单并打印出$_POST“print_r($_POST)“时,我得到了下面的数组:

Array
(
    [kt_ecommerce_add_category_conditions] => Array
        (
            [0] => Array
                (
                    [condition_type] => tag
                    [condition_equals] => equal
                    [condition_query] => test1
                )

            [1] => Array
                (
                    [condition_type] => title
                    [condition_equals] => starts
                    [condition_query] => test2
                )

        )
)

表单的提交是通过点击提交按钮直接提交到test.php文件来完成的,test.php文件被添加到form元素的action属性中,没有外部JS处理文件提交。

相关问题