---
title: "\"Återanvända\" ett formulär?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/186019-återanvända-ett-formulär"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Guldstrand"
published: "2011-02-07T22:14:25.000Z"
updated: "2011-02-23T10:22:22.000Z"
replies: 4
views: 1604
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/186019-återanvända-ett-formulär"
---

# "Återanvända" ett formulär?

## #1 — Guldstrand, 2011-02-07T22:14Z

Finns det något bra OCH säkert sätt att "återanvända" ett formulär?

Har följande kod för att ändra en kategori i databasen:

```php
if (isset($_GET["andra"]) && $_GET["id"] != "" && $_GET["id"] != 0) { 
$rad = @mysql_query("SELECT * FROM categories WHERE id = " .intval($_GET["id"]). "") or sqlerr(__FILE__, __LINE__);
$kat = mysql_fetch_array($rad) or die("Finns ingen kategori med detta ID (" .intval($_GET["id"]). ").");

if (isset($_POST["edit_cat"])) { 
mysql_query("UPDATE categories SET name = '" .htmlspecialchars($_POST["namn"]). "', id = " .intval($_POST["kat_id"]). " WHERE id = " .intval($kat["id"]). "") or sqlerr(__FILE__, __LINE__); 

$status = "<p>Kategorin med ID <b>" .intval($kat["id"]). "</b> har nu ändrats.</p>"; 
}

$edit_form = "<h3>Ändra kategorin <em>" .htmlspecialchars($kat["name"]). "</em></h3>";
$edit_form .= "<form method=\"post\" action=\"kategorier.php?andra&id=" .intval($kat["id"]). "\">\n<fieldset>";
$edit_form .= "<p><label for=\"kat_id\">ID:</label><input type=\"text\" name=\"kat_id\" value=\"" .intval($kat["id"]). "\" /></p>";
$edit_form .= "<p><label for=\"namn\">Namn:</label><input type=\"text\" name=\"namn\" value=\"" .htmlspecialchars($kat["name"]). "\" /></p>";
$edit_form .= "<p><label for=\"beskrivning\">Beskrivning:</label><input type=\"text\" name=\"beskrivning\" /></p>";
$edit_form .= "<p><label for=\"userfile\">Ikon:</label><input type=\"file\" name=\"userfile\" /></p>";
$edit_form .= "<p><input type=\"submit\" name=\"edit_cat\" value=\"ändra kategori\" /></p>";
$edit_form .= "</fieldset>\n</form>";
}
```

Längre ner på sidan, har jag ytterligare ett formulär där jag lägger till/skapar nya kategorier.

```php
	<h3>Skapa ny kategori</h3>
		<form method="post" action="kategorier.php">
			<fieldset>
				<p><label for="namn">Namn:</label><input type="text" name="namn" /></p>
				<p><label for="beskrivning">Beskrivning:</label><input type="text" name="beskrivning" /></p>
				<p><label for="userfile">Ikon:</label><input type="file" name="userfile" /></p>
				<p><input type="submit" name="submit" value="skapa kategori" /></p>
			</fieldset>
		</form>
```

Det känns både onödigt och "klumpigt" att ha två formulär för detta.

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

## #2 — Guldstrand, 2011-02-09T12:03Z

Är det verkligen ingen som vet hur man kan lösa ovanstående?  :(

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

## #3 — voigtann1, 2011-02-09T12:07Z

Klart att du borde kunna göra det, det ända som diffar dom är väl din QS värde i formuläret?

Skapa en funktion eller liknande som du kan mata in vad QS skall eller inte vara och alla fält i ditt formulär, om det inte är något skriv ut som value="" istället för value="mitt värde".

Eller så förstå jag inte alls vad du försöker göra.

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

## #4 — Renegade8164, 2011-02-23T00:20Z

Det är inte klumpigt att använda två enskida formulär. Många stora webbapplikationer använder det, dock skulle jag som andra använda mig utav någon typ av template-engine (kod-mallar) eller skapa en själv istället för att skriva ut så mycket html i php-koden som blir väldig jobbig att läsa och arbeta med i framtiden och blir jobbig när man ska designa sidan (front-end)

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

## #5 — danjel, 2011-02-23T10:22Z

Skapa en variabel som avgör om man ändrar eller lägger till, typ $IsEditMode.
Och styr markup efter den.
Men följ annars typ denna kod princip för att hantera postningar .

```php
  

$h3 = $IsEditMode ? "Ändra kategori" :"Skapa kategori";

if(empty($_POST)){ // ingen formulär postning skett

  if($_GET["id"] ){  // ändra
    $rad = @mysql_query("SELECT * FROM categories.."""

    $kat = mysql_fetch_array($rad);
    $Namn = htmlspecialchars($kat['namn']);
  }

}else{                  // formulär postat

 if(IsValidForm()){

   mysql_query("UPDATE ....."); 

   redirect();

  }else{ // populera fälten igen
 
    $Namn = htmlspecialchars($_POST["namn"]);

  }

}
 
  <h3><?php echo $h3 ?>

        <form method="post" action="kategorier.php"> 
            <fieldset> 
                <p><label for="namn">Namn:</label><input type="text" name="namn" value ="<?php $Namn ?>"/></p> 
                <p><label for="beskrivning">Beskrivning:</label><input type="text" name="beskrivning" /></p> 
                <p><label for="userfile">Ikon:</label><input type="file" name="userfile" /></p> 
                <p><input type="submit" name="submit" value="skapa kategori" /></p> 
            </fieldset> 
        </form>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/186019-återanvända-ett-formulär
