[php/html] preview form, wat is bla?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vraagje, ik ben nu al 3 dagen aan het rommelen met een preview van een form; users vullen hier hun antwoorden netjes op in en zouden ze eventueel (lees: als me dit lukt) kunnen previewen in een nieuw venster voordat ze via een submit mijn mysqldb ingaan, en krijg het niet voor elkaar! Javascripts, php, voorbeelden van alles, zelfs de voorbeeldjes van wat ik vindt op google lukken allemaal niet! ik baal als een stekker, en de onmacht omdat je iets nog niet beheerst!!! wordt er gek van!GRRR!!!

de mooiste en eenvoudigste oplossing leek me deze, gevonden in een post op tweakers _/-\o_

1-de code hieronder moet ik in mijn form stoppen, vraag wat is dan de "action" van mijn form? een ander php bestand of $php_self?

in form:
code:
1
2
<input type="submit" name="submit" value="verstuur">
<input type="submit" name="submit" value="preview">


2-...en wat zet ik dan op de plaats van "bla" uit onderstaande code? (een voorbeeldje ofzo)

in php:
code:
1
2
3
4
5
6
7
8
9
10
<?
if ($submit == 'verstuur') 
{ 
bla 
} 
elseif ($submit == 'preview') 
{ 
bla 
}
?>


Bedankt alvast! Mochten jullie al een compleet uitgekauwd voorbeeld hebben vind ik het ook prima! Maar ik wil dit zo graag begrijpen!

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
code:
1
2
3
4
5
6
7
8
9
10
<?
if ($submit == 'verstuur') 
{ 
   // insert stuff in de db
} 
elseif ($submit == 'preview') 
{ 
  // toon her formulier nogmaals met daarboven/onder de preview
}
?>

:? :?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

gewoon phpself gebruiken en het script hieronder (aangepast natuurlijk) erin plaatsen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
if ($submit == 'verstuur') 
{ 
 //mysql query
} 
elseif ($submit == 'preview') 
{ 
foreach ($_GET as $naam => $waarde)
{
echo $naam.' :: '.$waarde."<br>\n" ;
}
}
?>

[ Voor 15% gewijzigd door Wolfboy op 27-08-2003 04:08 . Reden: vergeten [/php] te plaatsen 8)7 ]

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

Verwijderd

Het onderste verhaaltje was mn eerste post, maar dat is niet juist volgens mij omdat de waarde niet naar het nieuwe venster worden gepost. Wat je denk ik wel kan doen is een onSubmit aan je <form> hangen die een script aanroept die de value bekijkt van de submit button. Als deze "preview" is open je een nieuwe window anders geef je true terug... Op die manier kan je volgens mij wel in een nieuw venster de waarde uit je form opvragen.

edit:
hieronder staat een stom verhaal volgens mij, moet je maar geen aandacht aan geven :)


Volgens mij moet je een onclick event aan je preview button hangen. In dat event zeg je window.open... op die manier open je dus een venster (in jouw gewenste formaat) met bijvoorbeeld een nieuwe pagina "popup.php" die de huidige gegevens vanuit het formulier verwerkt, dit kan dus voor zowel POST als GET, maar dat lijkt mij wel duidelijk

[ Voor 50% gewijzigd door Verwijderd op 27-08-2003 08:23 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 27 August 2003 @ 01:54:
2-...en wat zet ik dan op de plaats van "bla" uit onderstaande code? (een voorbeeldje ofzo)

in php:
code:
1
2
3
4
5
6
7
8
9
10
<?
if ($submit == 'verstuur') 
{ 
bla 
} 
elseif ($submit == 'preview') 
{ 
bla 
}
?>


Bedankt alvast! Mochten jullie al een compleet uitgekauwd voorbeeld hebben vind ik het ook prima! Maar ik wil dit zo graag begrijpen!
Een voorbeeldje ofzo? Heb je de Welkom in P&W: FAQ en Beleid *updated: 05-07* al gelezen? Dit neigt namelijk erg naar een script request op deze manier.

Wat heb je zelf al geprobeerd? Wat lukte er niet? Wat waren de fouten?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 27 August 2003 @ 08:09:
Het onderste verhaaltje was mn eerste post, maar dat is niet juist volgens mij omdat de waarde niet naar het nieuwe venster worden gepost. Wat je denk ik wel kan doen is een onSubmit aan je <form> hangen die een script aanroept die de value bekijkt van de submit button. Als deze "preview" is open je een nieuwe window anders geef je true terug... Op die manier kan je volgens mij wel in een nieuw venster de waarde uit je form opvragen.
Aan het script te zien is de TS al zover dat het form is gepost en aan een ander script is doorgegeven. Lees de draad voordat....? ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 17-09 17:10

RM-rf

1 2 3 4 5 7 6 8 9

las je bij een click op de preview knop een nieuw venster wilt openen, maar bij een knop op de submit de target naar _self wilt doen; dan zal je clientside moeten regelen, dus voordat je het werkelijke request doet.

aldus, geen php, dit is enkel met javascript te doen (php is enkel serverside, op requestbasis).

denk aan iets als
code:
1
2
3
4
5
6
7
8
9
10
<input type="button" onclick="doPreview( this.form)" />
<input type="submit" />

javascript:
function doPreview( theForm ) {
   window.open('', 'blah')
   theForm.target = "blah"
   theForm.elements['eenhiddenelement'].value = "preview"
   theForm.submit()
}

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
@Creepy: ik geef een mogelijke oplossing voor zijn huidige probleem, ik zeg dus in feite hetzelfde als RM-rf. OK, ik heb dan geen voorbeeldje erbij staan... ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Javascripts, php, voorbeelden van alles, zelfs de voorbeeldjes van wat ik vindt op google lukken allemaal niet! ik baal als een stekker, en de onmacht omdat je iets nog niet beheerst!!! wordt er gek van!GRRR!!!
beste TS
het gaat hierbij niet om een oplossing voor je probleem maar dat je begrijpt wat er gebeurd met een form en het verzenden van deze info.

Hierover is genoeg te vinden op het net, google.

Het komt er op neer dat als je een pagina hebt (index.php) waar dit op staat:

PHP:
1
2
3
4
5
<form action="pagina2.php" method="post">
  <input type="text" name="voornaam">
  <input type="text" name="achternaam">
  <input type="submit" value="verzenden">
</form>


..je de ingevulde waarde op deze manier terug kunt halen (pagina2.php):

PHP:
1
2
echo "Je voornaam: <b>" . $_POST['voornaam'] . "</b><br>";
echo "Je achternaam: <b>" . $_POST['achternaam'] . "</b><br>";


Als je dit even nader bekijkt zul je de logica zien en leer je er vanzelf mee werken.
En dan kun je ook makkelijk je preview page maken!
Bijvoorbeeld door je variabelen nogmaals mee te sturen naar een derde pagina middels een hidden field, maar die creatieviteit laat ik aan jouzelf over... (-: Suc6.

[ Voor 21% gewijzigd door Verwijderd op 27-08-2003 09:05 ]


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ik heb het zo gedaan

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
if ( $ isset($_POST['submit']) || !empty($_POST['submit']) )
{
    // submitten in DB
}
else
{
    if ( $ isset($_POST['preview']) || !empty($_POST['preview']) )
    {
        // preview box
    }

    // form html zooi
}

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Ik denk dat er zo wel voldoende oplossingen staan :) (evt kan ook de action nog verander worden met JS), maar de topicstarter mag denk ik eerst uitleg geven over wat niet lukt en waarom zijn code ook niet werkte (errormeldingen/wat gebeurde er?)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

ik doe meestal onclick de waarde van een hidden var wijzigen die ik in PHP weer uitvraag. Ervan uitgaan dat de waarde van de submit button in je POST request wordt meegestuurt is een enorme valkuil (submit maar eens door op enter te drukken in IE), en je submit button name="submit" geven is een nog grotere no-no ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt! Nou dat zijn idd veel oplossingen! ik kan ze pas vanovond/nacht pas proberen en dan zal ik ook de eventuele foutmeldingen en codes posten als het hier niet mee lukt - op het moment heb ik geen toegang tot mijn server :-( met websitetje... heb er nu wel meer vertrouwen in! die faq heb ik ook al vaak gelezen!!! blijft iig nuttig!

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15-09 16:19

alienfruit

the alien you never expected

crisp, volgens mij krijg je in IE altijd name_x en name_y terug. MAar waarom no clue :p

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

alienfruit schreef op 27 August 2003 @ 15:38:
crisp, volgens mij krijg je in IE altijd name_x en name_y terug. MAar waarom no clue :p
da's alleen met een <input type="image" src="plaatje.gif" />

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

alienfruit schreef op 27 August 2003 @ 15:38:
crisp, volgens mij krijg je in IE altijd name_x en name_y terug. MAar waarom no clue :p
Gelukkig niet....

name_x en name_y krijg je alleen bij image form items

[edit]
Weer eens te laat .... 8)

[ Voor 7% gewijzigd door LuCarD op 27-08-2003 15:45 ]

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
8) Denk dat het me

A-gelukt is
B-die variable dingen nu snap!!!!

zie hieronder de oplossing!

Als eerste heb ik in de head van mijn site het volgende javascript gebruikt (Javascript omdat rm-rf het client-server side stukje schreef en dat is voor sommigen ook logisch maar voor mij was het dat niet, nu weer wel!) Ik ken absoluut geen java, maar door wat dingetjes te combineren en op te zoeken heb ik dit gebrouwen met, dank aan jullie uitleg welteverstaan!

code:
1
2
3
4
5
6
7
8
9
10
11
12
<script language="JavaScript">
  function doSubmit(iValue) {
    if (iValue==1) { 
      window.open('', 'blah')
      frmTest.target = "blah"
      frmTest.action = 'previewtest.php';
    } else {
      frmTest.action = 'submitdbtest.php';
    }
    frmTest.submit();
    }
</script>


vervolgens heb ik deze twee knopjes toegevoegd aan het form en het form action="bla ;) .php" gedeelte verwijderd! en de eigenlijke knop met input type="submit", als ik dat niet deed bleef hij maar foutmeldingen geven, error onpage en niks gebeurde..... lekker onduidelijk dus!


code:
1
2
<input type="button" onclick="doSubmit(1);" value="Preview">
<input type="button" onclick="doSubmit(2);" value="Enter Data">


Ik ben vet BLIJ!!!!! en ga zo dus lekker slapen!!!

toch heb ik nog een vraagje

[code]
window.open('', 'blah')
[code]

hier opent het nieuw venster zich maar wat ik uit de javascript handleiding haal is dat "blah" hier de naam (net zoals je een form een naam geeft) van het nieuwe venster is klopt dat??? en de eerste -"- zijn gelijk aan "_blank" toch? en is dit btw een "gevaarlijk" stukje script omdat ik las dat "submitten" not done was. Javascript submit wel voor mij...

:Z B) :Z

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
dit is eigenlijk een vraag voor de buren, maargoed
die eerste '' is de url. je opent nu dus nix. er moet iets staan van 'url.html', het tweede argument is idd de naam van de window.
_blank is het in princiepe altijd in die zin dat je met window.open altijd een nieuw window opent zolang je geen naam ('blah') aanspreekt die al bestaat

edit:
me gaat ook maar eens slapenzzz........

[ Voor 13% gewijzigd door marty op 28-08-2003 05:19 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 28 August 2003 @ 03:38:
[...]
vervolgens heb ik deze twee knopjes toegevoegd aan het form en het form action="bla ;) .php" gedeelte verwijderd! en de eigenlijke knop met input type="submit", als ik dat niet deed bleef hij maar foutmeldingen geven, error onpage en niks gebeurde..... lekker onduidelijk dus!
dat komt door je name="submit" - die overschrijft de javascript submit() method.

Je kan voor het normale posten best een submit button gebruiken, en alleen een aparte button voor het previewen; mensen die javascript uit hebben staan kunnen dan wel posten maar alleen niet previewen...

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is alsnog gelukt ik, mij browser had denk ik problemen met het refreshen van de pagina (kan dat???) ik heb nu gewoon een submit button met een andere naam dan submit en het els stukje uit het jscript verwijder en ook nog eens een action= item aan het form gehangen! gaat alemaal prima! bedankt!!! 8)


wat hieronder staat gaat niet meer op:

Hoi Crisp, bedankt voor je suggestie is wel zo gebruikersvriendelijk idd, ik ga ervan uit dat de meesten wel javascript support in hun browser hebben staan maar toch, ik heb je advies uitgeprobeerd, als ik dat doe dan krijg ik een error in mijn browser, ie6, die zegt error op line blabla "object doesn't support this property or method" de line die hij aanngeeft is de line waar de java submit wordt aangeroepen

code:
1
2
3
}
    frmTest.submit();
}


ik krijg deze errormelding als ik op de gewone submit button klik,

code:
1
<input name="submit" type="submit" value="Enter Data">


die submitten van java en html elkaar dus dwarszitten zoals je al zei. Moet ik dan de "name" van de button veranderen? dit werkte nl wel want nu heb ik die fout in ie niet meer maar als ik dan op die button druk opent hij alsnog mijn preview schermpje....

[ Voor 21% gewijzigd door Verwijderd op 29-08-2003 01:13 ]

Pagina: 1