1 Câu hỏi: Cần gửi một mảng trong PHP

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố gắng gửi nhiều giá trị cho biểu mẫu PHP. Đây là biểu mẫu mà tôi sử dụng để gửi các giá trị:

<form id="form1" name="form1" method="POST" action="../WSweb/Factura.php">
    <table width="561" height="79" border="1">
        <tr>
            <td width="30%" height="32">ProductID</td>
            <td width="30%" height="32">SKU</td>
        </tr>
        <?php do { ?>
            <tr>
                <td><?php echo $row_test1['ProductID']; ?>
                    <input
                        type="hidden"
                        name="Product[id][ProductID]"
                        value="<?php echo $row_test1['ProductID']; ?>"
                    />
                </td>
                <td><?php echo $row_test1['SKU']; ?>
                    <input
                        type="hidden"
                        name="Product[id][SKU]"
                        value="<?php echo $row_test1['SKU']; ?>"
                    />
                </td>
            </tr>
        <?php } while ($row_test1 = mysqli_fetch_assoc($test1)); ?>
    </table>

    <input type="submit" value="Update" name="Facturar">
</form>

Và đây là tệp hành động:

if(isset($_POST['Update']))
{
    $ProductID=$_POST['Product'];
    print_r(json_encode($ProductID));
}

Vấn đề mà tôi gặp phải là khi tôi gửi nhiều giá trị, ví dụ như bảng dưới đây:

ProductID      SKU
103              WH004BI
137              VO007BI

Tôi luôn nhận được kết quả này:

{"id":{"ProductID":"137","SKU":"VO007BI"}}

Khi tôi thực sự muốn nhận được kết quả như thế này:

{"id":[{"ProductID":"103","SKU":"WH004BI"},{"ProductID":"137","SKU":"VO007BI"}]}
    
4
  1. Thay đổi name="Product[id][ProductID]" thành name="Product[id][][ProductID]". HTML cũng có thể có mảng! Điều này giống như khi bạn nối thêm một phần tử vào mảng bằng cú pháp []. Làm điều này cho tất cả các đầu vào được đặt tên.
    2019-05-08 16: 21: 50Z
  2. tôi chỉ làm nhưng tôi nhận được ProductID SKU 103 WH004BI 137 VO007BI dưới dạng nào để có được điều này? {"id": [{"ProductID": "103", "SKU": "WH004BI"}, {"ProductID": "137", "SKU": "VO007BI"}]}
    2019-05-08 16: 34: 31Z
  3. Tôi không nghĩ rằng bạn có thể lấy cấu trúc đó trực tiếp từ một biểu mẫu, bạn sẽ cần sắp xếp lại dữ liệu trong PHP.
    2019-05-08 16: 36: 58Z
  4. tôi thoát ra một lúc nào đó như thế { 137 "," SKU ":" VO007BI "}]}
    2019-05-08 17: 12: 50Z
1 Câu trả lời                              1                         

Bạn sẽ muốn làm một cái gì đó như thế này:

<form id="form1" name="form1" method="POST" action="../WSweb/Factura.php">
    <table width="561" height="79" border="1">
        <tr>
            <td width="30%" height="32">ProductID</td>
            <td width="30%" height="32">SKU</td>
        </tr>
        <?php $i = 0; ?>
        <?php while ($row_test1 = mysqli_fetch_assoc($test1) { ?>
            <tr>
                <td>
                    <?php echo $row_test1['ProductID']; ?>
                    <input
                        type="hidden"
                        name="Product[id][<?= $i; ?>][ProductID]"
                        value="<?php echo $row_test1['ProductID']; ?>"
                    />
                </td>
                <td>
                    <?php echo $row_test1['SKU']; ?>
                    <input
                        type="hidden"
                        name="Product[id][<?= $i; ?>][SKU]"
                        value="<?php echo $row_test1['SKU']; ?>"
                    />
                </td>
            </tr>
        <?php $i++; ?>
        <?php } ?>
    </table>

    <input type="submit" value="Update" name="Facturar">
</form>

Lưu ý rằng tôi đã đặt $i = 0 ở đầu vòng lặp và $i++ ở cuối vòng lặp.

Ngoài ra, tôi đã thay đổi tên thành như sau:

name="Product[id][<?= $i; ?>][SKU]"

Điều này sẽ ngăn vấn đề bạn gặp phải trong phần nhận xét liên quan đến một mảng không định dạng.

    
2
2019-05-08 17: 42: 33Z
  1. tôi chỉ làm nhưng tôi nhận được kết quả này {"id": [{"ProductID": "137", "SKU": "VO007BI"]} nhưng tôi đã hoàn thành lấy tất cả các mảng
    2019-05-08 17: 23: 34Z
  2. @ JavierJoasimarPalosFlores Vui lòng xem mã của tôi. Tôi đã thử nghiệm điều này trong môi trường của riêng tôi và mọi thứ dường như đang hoạt động chính xác. Vui lòng đảm bảo rằng bạn sao chép mã chính xác như trong câu trả lời.
    2019-05-08 17: 43: 35Z
nguồn đặt đây