【问题标题】:Placing HTML input fields in my PHP array在我的 PHP 数组中放置 HTML 输入字段
【发布时间】:2014-01-30 09:27:45
【问题描述】:

我为自己制作了一个简单的网站,现在我即将完成它。我遇到了以下问题。

我在数组中制作了我想要的表格。这是输入字段的样子:

<tr>
    <td>Pizza Margherita</td>
    <td>&#8364; 7.00</td>
    <td><input type="number" id="countMargherita" class="formnumbers" name="PizzaMargherita" onChange="validateForm(this);changeTotalFromCount(this);" min="1" max="99" data-unitprice="7"/></td>
    <td><span id="totalMargherita"></span></td>
</tr>

http://jsfiddle.net/N3EBz/

但是我有 11 个这样的产品,所以你可以理解我的表格有点乱。如果我需要添加更多产品,像这样添加它们会很痛苦。

我决定将它们放在一个数组中,但我有点困惑我应该如何做到这一点。

我究竟如何获取数组并让它在表单发送到的页面上回显?

提前致谢!

如果您需要任何澄清,请告诉我!

【问题讨论】:

    标签: javascript php html arrays forms


    【解决方案1】:

    您需要研究循环和迭代输出。通过 PHP 数组输出是一种方法;客户端模板引擎是另一个。它们都等同于迭代输出的相同概念。

    简单的 PHP 示例:

    <?php
    $arr = array('product 1', 'product 2', 'product 3');
    foreach($arr as $product) { ?>
    <tr>
        <td><?php echo $product; ?></td>
    </tr>
    <?php } ?>
    

    【讨论】:

    • 我知道这一点 php 数组,但有没有一种方法可以将输入字段也放入其中。因为它们都完全相同,除了每个产品的 id、name 和 data-unitprice 变化。我在 PHP 方面的经验还差得很远,所以我正在尝试所有的可能性。
    • 将 HTML 存储在数组中是不好的设计。而是使用将数据与输出分离的方法。仅将数据存储在数组中,然后在迭代代码中构建 HTML,即在本例中为循环体。
    【解决方案2】:

    创建包含产品数组的数组

    $productsData = array(
        array(
           'code' => 'margherita',
           'name'=> 'Pizza Margherita',
           'price' => '7.00'
        ),
        array(
           'code' => 'withmeat',
           'name'=> 'Pizza with meat',
           'price' => '10.00'
           'field_name' => 'PizzaMargherita'
        )
    );
    
    <?php foreach($productsData as $productData):?>
    <tr>
        <td><?php echo $productData['name']?></td>
        <td>&#8364; <?php echo $productData['price']?></td>
        <td><input type="number" id="count<?php echo $productData['code']?>" class="formnumbers" name="<?php echo $productData['code']?>" onChange="validateForm(this);changeTotalFromCount(this);" min="1" max="99" data-unitprice="7"/></td>
         <td><span id="total<?php echo $productData['code']?>"></span></td>
    </tr>
    <?php endforeach;?>
    

    【讨论】:

    • 谢谢,这正是我想要的效果,需要根据我的需要进行一些定制,但这个示例对我帮助很大!
    猜你喜欢
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多