0

为了更好地理解,我描述了我的任务。我们必须在php中创建一个工具,将带有表单的手机一个一个添加到列表中。稍后该列表应导出为 CSV/XML 文件。这是通过 Arrayobject 完成的。我的问题是我可以使用表单输入手机,但它们会被覆盖而不是添加。所以我的列表中一次只有一部手机。到目前为止我的代码:HTML:

      <div>
    <form name="Eingabe" action="handler.php" method="POST">
        <label for="Hersteller">Hersteller</label>
        <input id="Hersteller" name="Hersteller" type="text"><br>
        <label for="Modell">Modell</label>
        <input id="Modell" name="Modell" type="text"><br>
        <label for="Preis">Preis</label>
        <input id="Preis" name="Preis" type="number" min="1" max="1000"><br>
        <label for="Seriennummer">Seriennummer</label>
        <input id="Seriennummer" name="Seriennummer" type="text"><br>
        <br>
        <input name="Senden" type="submit" value="Speichern">
    </form>
  </div>

列表:

    <?php


class handy /* extends guid */ {

    private $id;
    private $hersteller;
    private $modell;
    private $seriennr;
    private $preis;

    public function setid($id)
    {
        $this->id = $id;
    }

    public function sethersteller($hersteller)
    {
        $this->hersteller = $hersteller;
    }

    public function setmodell($modell)
    {
        $this->modell = $modell;
    }

    public function setseriennr($seriennr)
    {
        $this->seriennr = $seriennr;
    }

    public function setpreis($preis)
    {
        $this->preis = $preis;
    }

    public function getid()
    {
        return $this->id;
    }

    public function gethersteller()
    {
        return $this->hersteller;
    }

    public function getmodell()
    {
        return $this->modell;
    }

    public function getseriennr()
    {
        return $this->seriennr;
    }

    public function getpreis()
    {
        return $this->preis;
    }

}

?>
<?php
class handyliste extends ArrayObject {

public function addhandy($i, $hdy)
{
    $this->offsetSet($i, $hdy);
}
?>

处理程序:

        $h = new handy();
    $h->sethersteller($_POST['Hersteller']);
    $h->setid(uniqid());
    $h->setmodell($_POST['Modell']);
    $h->setpreis($_POST['Preis']);
    $h->setseriennr($_POST['Seriennummer']);
    $hl = new handyliste();
    $hl->addhandy(null, $h);
 echo "<table>";
    echo "<thead><tr><th>ID</th><th>Hersteller</th><th>Modell</th><th>Seriennummer</th><th>Preis</th></tr></thead>";
    foreach ($hl as $h)
    {
        echo "<tr><td>";
        echo $h->getid() . "</td><td>";
        echo $h->gethersteller() . "</td><td>";
        echo $h->getmodell() . "</td><td>";
        echo $h->getseriennr() . "</td><td>";
        echo $h->getpreis() . "€&lt;/td></tr>";
    }
    echo "</table>";

我希望有人能帮帮忙。我认为使用普通数组会很容易,但我以前从未使用过数组对象。

4

1 回答 1

0

你确实有类似的东西:

$hl = new handyliste();

现在,在代码的最后,填充数据后,您可以执行以下操作:

$_SESSION['hl'] = $hl;

要使用您需要在代码之上的会话:

session_start();

将开始或继续会话。现在,在做之前

$hl = new handyliste();

您需要检查以下内容:

$hl = $_SESSION['hl'];

并且只添加元素,如果不工作,您可以投射列表(示例),这将保存会话,并且您可以在每个已获得的页面上看到此变量 (session_start();) 有关会话的更多信息,请参阅php.net

于 2014-12-15T08:34:09.090 回答