login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dynamic Form

Offline timo - 10/12/2006 12:46
Avatar van timoPHP ver gevorderde Ik wil een form waarbij er 2 inputs zijn die er steeds meer kunnen worden, het is voor een config tabel die is opgebouwd als id | name | value
ik wil steeds 1 input voor de name en 1 voor de value, maar met 1 druk op een link (JS als het kan) moet er nog 1 bij komen maar het moet verwerkbaar blijven in PHP, weet iemand hoe ik dit kan doen?

5 antwoorden

Gesponsorde links
Offline Thomas - 10/12/2006 12:54 (laatste wijziging 10/12/2006 12:55)
Avatar van Thomas Moderator Dat kan, maak een div met een id, en vervolgens een button waarmee je een stukje HTML naar deze div schrijft.

FireFox heeft hierbij wel een raar probleem:
Als je bijvoorbeeld 2 velden hebt ingevuld, en een 3e naar de div wegschrijft, zullen de eerste twee velden gereset worden. Je zult dus in FF eerst alle velden moeten toevoegen alvorens je ze in gaat vullen. Ook is het vrij lastig om een geplaatst veld weer te verwijderen.

Misschien bestaan hier al oplossingen voor - daar zou ik dan zeker gebruik van maken.
Offline timo - 10/12/2006 12:57 (laatste wijziging 10/12/2006 13:40)
Avatar van timo PHP ver gevorderde Oke dat HTML gedeelte gaat dan wel lukken, tip hoe het dan te verwerken?

EDIT: na nog wat dieper dan ik al had gedaan gezocht heb ik een oplossing gevonden, als name attribuut het volgende: name="naam[]" en na het dumpen van $_POST waardes kwam ik erachter dan naam dan inderdaad een array werd.. dus dat gaat wel lukken, thx allemaal!

nog maar een edit: als ik waardes nu wijzig gaat het goed, maar als ik een nieuw aanmaak krijg ik de fout
Citaat:
Error during executing query (Column count doesn't match value count at row 1)

Stukje code:
  1. <?
  2. foreach($_POST['name'] AS $number => $name)
  3. {
  4. $res = $this->sql->query("SELECT * FROM config WHERE name='".addslashes($name)."'");
  5. if($this->sql->num_rows($res) > 0)
  6. $this->sql->query("UPDATE `config` SET `value`='".addslashes($_POST['value'][$number])."' WHERE name='".addslashes($name)."'");
  7. else
  8. $this->sql->query("INSERT INTO `config` (`name`,`value`) VALUES ('".addslashes($name)."''".addslashes($_POST['value'][$number])."')");
  9. }
Offline ikkedikke - 10/12/2006 14:25
Avatar van ikkedikke PHP expert $this->sql->query("INSERT INTO `config` (`name`,`value`) VALUES ('".addslashes($name)."', '".addslashes($_POST['value'][$number])."')");
Offline timo - 10/12/2006 14:27
Avatar van timo PHP ver gevorderde jezus wat dom:P ik dacht dat de fout in de select query zat..
Offline Dark_Paul - 10/12/2006 18:04
Avatar van Dark_Paul PHP ver gevorderde Er was eerst iemand hier op 't forum, die had daar een script voor. Ik weet niet meer wie 't was, maar dat werkte in ieder geval.
De eerste inputdiv had een '+'-teken, om nog zon div toe te voegen.
De toegevoegde div's hadden een '-'-teken om ze weer weg te halen.
Misschien kan ik nog terugvinden wie 't was..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.392s