---
title: "Modifiera kod som loopar alla formulärfält"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/145777-modifiera-kod-som-loopar-alla-formulärfält"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Annakay"
published: "2006-04-20T09:01:56.000Z"
updated: "2006-04-20T18:45:39.000Z"
replies: 3
views: 453
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/145777-modifiera-kod-som-loopar-alla-formulärfält"
---

# Modifiera kod som loopar alla formulärfält

## #1 — Annakay, 2006-04-20T09:01Z

Har ett beställningsformulär med en kodsnutt som lägger allt formulärinnehåll i en textsträng som sen ska skickas via e-post. 

Jag är inte så haj på PHP och skulle vilja modifiera nedanstående kod till att BARA lägga till i textsträngen de formulärfält som:

- har ett namn som börjar på "antal\_" OCH har ett värde större än 0
- har ett namn som börjar på "summa\_" OCH har ett värde större än 0
- heter "totalsumma"

 

```php
$message.="Kundens order:\n";
  foreach($_POST as $key => $val){
     if (is_array($val)){
        $message.="Item: $key\n";
        foreach($val as $v){
           $v = stripslashes($v);
           $message.="   $v\n";
        }
     } else {
        $val = stripslashes($val);
        $message.="$key: $val\n";
     }
  }
```

 

Snälla rara söta någon...   :)

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

## #2 — mangan, 2006-04-20T10:33Z

```
$message.="Kundens order:\n";
foreach($_POST as $key => $val){
    // Hitta alla som börjar på antal_ och har större antal än 0
    if((strpos($key, "antal_") === 0) AND $val > 0){
        $message.= "Lägg till vad du nu vill ha";
    }
    // Hitta alla som börjar på summa_ och har större antal än 0
    if((strpos($key, "summa_") === 0) AND $val > 0){
        $message.= "Lägg till vad du nu vill ha";
    }
    // Hitta totalsumma
    if($key == "totalsumma"){
        $message.= "Lägg till vad du nu vill ha";
    }
}
```

Inte testat men borde funka typ såhär. Sen beror det ju på hur ditt formulär är uppbyggt så du kanske måste anpassa det lite. Om du är osäker på hur strukturen på resultatet ser ut så kan du dumpa resultatet:

```
var_dump($_POST);
```

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

## #3 — The_Hulk, 2006-04-20T10:47Z

Byggde ihop era två förslag till ett. har inte testat det så blir det något fel får du återkomma.

```php
$message.="Kundens order:\n";

foreach($_POST as $key => $val)
{
    if (is_array($val))
    {
        $message.="Item: $key\n";
        foreach($val as $v)
        {
           $v = stripslashes($v);

            if( ((strpos($key, "antal_") === 0) && $v > 0) ||
                ((strpos($key, "summa_") === 0) && $v > 0) ||
                ($key == "totalsumma")
              )
            {
                $message.="   $v\n";
            }
        }
    }
    else
    {
        $val = stripslashes($val);
        
        if( ((strpos($key, "antal_") === 0) && $val > 0) ||
            ((strpos($key, "summa_") === 0) && $val > 0) ||
            ($key == "totalsumma")
          )
        {
            $message.="$key: $val\n";
        }
    }
}
```

/red
La till de saknade parenteserna.

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

## #4 — Annakay, 2006-04-20T18:45Z

Tusen tack! Det saknades dock en parentes i slutet av de "långa" if-satserna.
 
if( ((strpos($key, "antal\_") === 0) && $v \> 0) \|\| 
                ((strpos($key, "summa\_") === 0) && $v \> 0) \|\| 
                ($key == "totalsumma") **)**

Härligt, den här koden kommer jag att ha mycket nytta av!    (y)

Tack igen!   :)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/145777-modifiera-kod-som-loopar-alla-formulärfält
