---
title: "loopa värden från formulär"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/79942-loopa-värden-från-formulär"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Pedda"
published: "2003-06-17T10:09:33.000Z"
updated: "2003-06-17T20:45:11.000Z"
replies: 7
views: 266
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/79942-loopa-värden-från-formulär"
---

# loopa värden från formulär

## #1 — Pedda, 2003-06-17T10:09Z

Har ett script där jag har ett formulär med flera textfält.

```
<form name="form1" method="post" action="<?=$_SERVER['PHP_SELF'] ?>?action=ny&Step3=">
  <table width="100%" border="0" cellspacing="5" cellpadding="0">
    <tr> 
      <td>&nbsp;</td>
      <td>Steg 2</td>
    </tr>
    <tr> 
      <td>Svar 1:</td>
      <td><input name="answ1" type="text" value="" size="50" maxlength="100">
        F&auml;rg: # 
        <input name="color1" type="text" size="6" maxlength="6"></td>
    </tr>
    <tr> 
      <td>Svar 2:</td>
      <td><input name="answ2" type="text" value="" size="50" maxlength="100">
        F&auml;rg: # 
        <input name="color2" type="text" size="6" maxlength="6"></td>
    </tr>
    <tr>
      <td>Svar 3:</td>
      <td><input name="answ3" type="text" value="" size="50" maxlength="100">
        F&auml;rg: # 
        <input name="color3" type="text" size="6" maxlength="6"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td><input type="submit" name="Step3" value="Till Steg 3 &gt;&gt;"> <input name="clear" type="reset" id="clear" value="Rensa"> 
      </td>
    </tr>
  </table>
</form>
```

Vill loopa in svaren i databasen tabellnamn data, fält answ och color. Så varje fält kommer alltså på en rad i databasen. Har id som autoincrement.
Tomma fält i formuläret ska inte heller läggas in i databasen, och jag lyckas inte lista ut hur man gör.

Permalänk: https://www.webforum.nu/p/79942

## #2 — stevenet, 2003-06-17T11:28Z

Följande kod loopar igenom alla POST-variabler. (Även skicka- och återställknappen? Om detta är fallet kan du utesluta dem genom att subtrahera 2 från count($keys).)

Om båda answ och color har har ett värde så läggs det in en ny post i tabellen data.

```php
<?
$keys = array_keys($_POST); 
$i = 0;
while($i < count($keys)){ 
	if (isset($_POST[$keys[$i]]) && isset($_POST[$keys[$i+1]])) {
	mysql_query("INSERT INTO data (id, answ, color) VALUES ('', '{$_POST[$keys[$i]]}', '{$_POST[$keys[$i+1]]}')") or die(mysql_error());
	}
$i+=2;
}
?>
```

Permalänk: https://www.webforum.nu/p/1087897

## #3 — Pedda, 2003-06-17T13:37Z

Tackar, funkade utmärkt!

Permalänk: https://www.webforum.nu/p/1088046

## #4 — Pedda, 2003-06-17T19:52Z

Ropade visst hurra för tidigt.

Förslaget från stevenet lägger in även tomma poster.

Någon som har fler förslag, eller något som kan ändras i stevenet's förslag?

Permalänk: https://www.webforum.nu/p/1088342

## #5 — Matte, 2003-06-17T20:15Z

Testa det här:

```
foreach ($_POST as $key => $val) {

    if (substr($key, 0, 4) == 'answ' && $val != "") {

       $sql = "INSERT INTO data (id, answ, color) VALUES ('', '$key', '$val')";
       mysql_query($sql) or die(mysql_error());

    }

}
```

Permalänk: https://www.webforum.nu/p/1088356

## #6 — Pedda, 2003-06-17T20:23Z

Tyvärr, inget sparas i databasen.

Permalänk: https://www.webforum.nu/p/1088365

## #7 — stevenet, 2003-06-17T20:30Z

Pröva att byta ut:
    if (isset($\_POST\[$keys\[$i\]\]) && isset($\_POST\[$keys\[$i+1\]\])) {
mot 
    if (strlen($\_POST\[$keys\[$i\]\])\>0 && strlen($\_POST\[$keys\[$i+1\]\])\>0) {

Permalänk: https://www.webforum.nu/p/1088374

## #8 — Pedda, 2003-06-17T20:45Z

Underbart, nu funkar det.
Tack igen!!

Permalänk: https://www.webforum.nu/p/1088390

---

Tråden på webben: https://www.webforum.nu/amne/php/79942-loopa-värden-från-formulär
