Na submit een pop up openen met de gegevens van het form

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

05/05/2011 09:42:00
Quote Anchor link
Goeden dag,
Is het mogelijk dat als ik op de submit knop druk dat er een
pop up wordt geopend. Zodat ik zegmaar een soort confermatie heb.

Voorbeeld.
<form method="post" action="">
naam: <input type="text" name="naam" />
punten: <input type="select" name="price" />
<option name="punten" value="10">10 punten</option>
</select>
<input type="submit" name="verstuur" value="versturen" />
</form>

En dan met de pop up
Hallo naam
Weet u zeker dat u 10 punten wil versturen.

Ik heb nu wel een pop up gemaakt maar de form velden wil die niet echoën.
Alvast bedankt,

Thomas de Vries.
 
PHP hulp

PHP hulp

19/04/2024 09:32:11
 
Maikel  B

Maikel B

05/05/2011 10:02:00
Quote Anchor link
als je zoiets wilt kun je beter een javascript alert maken.
Want er is een kans dat mensen een popupblocker aan hebben staan.
En als je mensen toch wilt verplichten om de bevestigen dat ze iets willen versturen kun je beter een alert gebruiken.
 
Sebastiaan Blaas

Sebastiaan Blaas

05/05/2011 10:03:16
Quote Anchor link
magische antwoord in deze is de js functie "confirm"
 
Thomas de vries

thomas de vries

05/05/2011 10:27:12
Quote Anchor link
ja die confirm is goed.
Maar nog niet wat ik zoek

Ik zal het wat beter uitleggen.
bezoekers vullen het form in.
Dan klikken ze op submit.
Dan moet er een pop up komen, dit kan eventueel ook met JS.
en in dat pop up moet dus alle gegevens komen te staan.
en als ze dan ook op ok klikken dan wordt het formulier pas helemaal gestuurd.
heb al wat gedaan met JS maar dan refresht ie de pagina als ik op submit klik en krijg ik geen pop-up. wel als ik een hyperlink maak.
het gaat hier om een JS popup wat ik ook wil ivm pop-up blockers.
 
Ozzie PHP

Ozzie PHP

05/05/2011 10:36:19
Quote Anchor link
2 vragen:

a) Waarom moeten mensen die het formulier versturen eerst iets bevestigen?
b) Waarom een alert en niet een aparte pagina?
 
Thomas de vries

thomas de vries

05/05/2011 10:39:41
Quote Anchor link
dit ivm een betalings systeem. van onebip. die ik op deze manier moet controleren.
anders wil het niet.

Toevoeging op 05/05/2011 10:40:31:

(b) ik wil geen alert vindt dat niet mooi.
Moet een pagina zijn die met een div-pop-up wordt geopend.
dat zou het mooiste zijn.
 
Ozzie PHP

Ozzie PHP

05/05/2011 10:50:29
Quote Anchor link
Dus als ik het goed begrijp...
Mensen kopen iets... verzenden het formulier... en vervolgens ga jij nog een keer vragen of het wel allemaal klopt wat ze hebben ingevuld?


Wat betreft b. Ik heb het ook niet over een alert... Mijn vraag is waarom je niet een volgende pagina toont, in plaats van een alert / pop-up.
 
Thomas de vries

thomas de vries

05/05/2011 11:05:28
Quote Anchor link
ke ik zal het zo uitleggen.
Ik ben dus bezig met een betaal systeem. van one-bip.
dit zijn de velden die dus allemaal verplicht zijn.

dit is het koop form
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<form method="post" action="https://www.onebip.com/otms/"><!--- Hier wordt het form naar toe gestuurd met alle verborgen velden-->
<table width="100%">
<tr>
    <td><input type="text" name="item_name" value="raventh" /></td>
    <td><select name='price'>
<?php
//Donatie punten uit de tabel onebip halen//
//Let wel op wel een eigen query gebruiken dit ivm ik gebruik geen mssql maar mysql. het principe blijft hetzelfde.//

$sql = "SELECT * FROM onebip";
if(!$result = $mysqli->query($sql))
{

    echo 'fout'; //Fout afhandeling    
}
else
{
    //doorgaan als er geen fout is
    while ($row = $result->fetch_assoc())
    {

        echo '
        <option value="'
.$row['price'].'">"'.$row['tekst'].'"</option>';
    }
}

?>

</select>
</td>
    <td><input type='image' name='submit' src='http://www.onebip.com/tools/bts/btn06.gif' alt='Pay with Onebip' border='0' onclick="popup('popUpDiv')"/></td>
</tr>
</table>
<input type="hidden" name="description" value="Mystical points" />
<input type="hidden" name="username" value="[email protected]" />
<input type="hidden" name="currency" value="USD" />
<input type="hidden" name="command" value="express_pay" />
<input type="hidden" name="custom[naam]" value="raventh"  />
<input type="hidden" name="return_url" value="http://localhost/pay.php" />
<input type="hidden" name="notify_url" value="http://apolloteam.cjb.net/notify.php" />
</form>


Zodra onebip dit formulier heeft wordt er vanuit hun website uit. een validatie code gestuurd met de nodige informatie naar mijn url die notify.php heet.
Maar ik krijg het niet voor elkaar om dus als bezoekers een price hebben genomen.
dat ook de punten die er bij zitten worden meegestuurd.
De punten moeten ook in een hidden veld worden meegestuurd.

Daarom wou ik ook dat ik het via een div pop-up wordt gecontroleerd zodat ik de punten mee kan sturen. Op deze manier wil het namelijk niet.
 
Ozzie PHP

Ozzie PHP

05/05/2011 11:14:44
Quote Anchor link
Echt duidelijk uitgelegd is het niet... :-s
Gaat het erom dat onebip die punten nodig heeft? Of hoef jij alleen zelf het aantal punten te weten?
 
Joren de Wit

Joren de Wit

05/05/2011 11:15:49
Quote Anchor link
Maar wat houdt jou tegen om op die nieuwe pagina de waarden uit de hidden fields uit het eerste formulier in een nieuw formulier te zetten en dat vervolgens naar onebip te sturen?

Dus het eerste formulier krijgt als action de nieuwe (controle)pagina mee. Het formulier op de controlepagina vul je vervolgens met de gegevens uit het eerste formulier en krijgt als action de url naar onebip.
Gewijzigd op 05/05/2011 11:16:16 door Joren de Wit
 
Thomas de vries

thomas de vries

05/05/2011 12:04:55
Quote Anchor link
Eigenlijks geen idee wat mij tegen houd.
wilde het mooier maken doormiddel van een div pop-up
 
Vincent Huisman

Vincent Huisman

05/05/2011 12:15:31
Quote Anchor link
ik denk dat ik het zelf prettiger zou vinden wanneer ik gewoon naar een nieuwe pagina ga
 
Maikel  B

Maikel B

05/05/2011 12:19:33
Quote Anchor link
de meeste mensen die willen juist zoveel mogelijk pop-ups vermijden omdat men ze over het algemeen als irritant/oninteressant beschouwt.

Dus je kan beter voor een nieuwe pagina gaan als voor een div pop-up
 
Bas Matthee

Bas Matthee

16/06/2011 12:32:09
Quote Anchor link
Ik doe het zelf altijd op deze manier:

<form action="doel.php" method="post" target="mijn_popup" onsubmit="window.open('about:blank','mijn_popup','width=200,height=300')">
<input name="tekstveld" type="text" />
<input name="submit" type="submit" value="Verstuur!" />
</form>

Verdere uitleg staat op deze site
 
- Ariën  -
Beheerder

- Ariën -

16/06/2011 12:36:47
Quote Anchor link
Bas Matthee op 16/06/2011 12:32:09:
Ik doe het zelf altijd op deze manier:

<form action="doel.php" method="post" target="mijn_popup" onsubmit="window.open('about:blank','mijn_popup','width=200,height=300')">
<input name="tekstveld" type="text" />
<input name="submit" type="submit" value="Verstuur!" />
</form>

Verdere uitleg staat op deze site

En toen werden popups afgeschoten door je browser en gebeurde er niks....
 
Bas Matthee

Bas Matthee

16/06/2011 12:41:43
Quote Anchor link
Een andere mogelijkheid zou zijn om middels (bijv) jquery een modal window te openen, met hierin een iFrame. De iFrame kan je een id meegeven, welke je als target meegeeft in je form-tag
 
The Force

The Force

16/06/2011 13:13:41
Quote Anchor link
Mensen waar doen jullie moeilijk over? Op zich is het geen probleem om een confirmatie op dezelfde pagina te tonen. Scheelt laadtijd en lijkt me zeker gebruikersvriendelijker dan om het op een andere pagina te tonen. Een alert/confirm wil je niet want dat beschouwen veel mensen alsof er iets fout gaat. Ik denk dat de topic starter doelt op een overlay over de huidige website i.p.v. een aparte popup die tegengehouden zou kunnen worden door een pop-up blocker. Facebook gebruikt dat bijvoorbeeld ook veel.

Hier is hoe je het kan maken. Maak met HTML/CSS een div die over de pagina gezet kan worden. Iets als dit:

HTML
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<!-- Helemaal bovenaan in de body van je HTML zetten
<div id="overlay"></div>
<div id="confirmation">
    <h2>Wilt u het formulier met deze gegevens versturen?</h2>
    <!-- Hier moet je met javascript de gegevens inzetten als de submit knop ingedrukt wordt. -->
    <p id="description"></p>
    <p id="concurrency"></p>
    <!-- enz... -->

    <input type="submit" value="Ja, versturen" />
    <input type="button" id="cancel" value="Nee, cancel" />
</div>


CSS
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#overlay {
    position: fixed;
    top: 0px;
    left: 0px;
    
    width: 100%;
    height: 100%;
    
    background: #000;
    opacity: .88;
    filter: alpha(opacity=88);
    -moz-opacity: 0.88;
    display: none;
}

#confirmation {
    background:    #fff;
    position: fixed;
    width: 400px;
    left: 50%;
    margin-left: -200px; /* Dit moet min de helft van de breedte van de div zijn (om de div te centreren). */
    top: 100px;
    display: none;
}


Vervolgens moet je met javascript zorgen dat op het moment dat je op de submit klikt deze divs getoond worden en dat je niet doorgestuurd wordt. Dat kan makkelijk met jQuery:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$("#idvansubmit").submit(function() {
    //Laat de overlay zien met een mooi effect.
    $('#overlay, #confirmation').fadeIn(100);
    
    //Nu alle gegevens in de overlay zetten.
    $("#description").html($("input[name=description]").val());
    //Enz... voor alle velden.
    
    //Voorkom standaard gedrag (doorsturen).
    return false;
    });


Je moet dus een submitknop hebben op het formulier en die een id geven en die overeen laten komen met #idvansubmit in de javascript. In de overlay staat ook een submitknop. Als iemand daar op drukt gaat bovenstaande event dus niet af (want die is alleen voor de submitknop met id "idvansubmit" (of hoe je het ook noemt). Je moet de overlay dus wel in het formulier zetten!

Vervolgens heb je alleen nog code nodig voor het geval dat iemand op de cancel knop klikt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$("#cancel").click(function() {
    $("#overlay, #confirmation").fadeOut(100);
});


Klaar is Thomas!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.