[PHP/Javascript] disable submit button

Pagina: 1
Acties:
  • 29 views sinds 30-01-2008

  • SvEn
  • Registratie: Juli 2001
  • Laatst online: 06-12-2025

SvEn

a.k.a sv3nrg

Topicstarter
jaja , het zoveelste topic over het disabelen van een knop in een form.

Het gaat hierbij om een online spelletje wat ik aan het maken ben. Dit scriptje moet ervoor zorgen dat mensen niet 2 keer op een knop drukken en zo bijvoorbeeld met een gokspelletje 2 keer geld krijgen.

Het scriptje werkt opzich wel als ik in de form bijvoorbeeld action="blabla.php" doe

maar als ik action="<?php echo $PHP_SELF;?>" doe dan wil het opeens niet meer en herlaad hij de pagina alleen zonder de "echte" actie uit te voeren , ik heb al zoveel topics gelezen hierover en gegoogled enzo maa rik kom er echt niet uit , misschien kunnen jullie mij uit de brand helpen

ik ben hier namelijk al 2 dagen mee aan het stoeien ik gebruik op dit moment dit stukje code
code:
1
2
3
4
5
6
7
<SCRIPT language='javascript'>
function disableButton(theButton)
{
theButton.disabled = true;
theButton.form.submit();
}
</script>


en dit is de form
code:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<form name="theButton" action="<?php echo $PHP_SELF;?>" method="POST">
<table bordercolor="black" width="325" border="1" cellspacing="0" cellpadding="0" aling="center" valign="top">
<tr>
<td bgcolor="<?php echo $_SESSION['Color_cell'];?>" colspan="4" width="100%" height="10" align="center" valign="center" class="maincontent"><b>Horse Track</b></td>
</tr>
<tr>
<td bgcolor="white" width="40%"  align="left" valign="center" class="maincontent">&nbsp;<b>Bet price:</b></td>
<td bgcolor="white" width="60%"  colspan="3" align="left" valign="center" class="maincontent">&nbsp;<input type="text" name="value" size="10"></td>
</tr>
<tr>
<td bgcolor="white" width="40%"  align="left" valign="center" class="maincontent">&nbsp;<b>Max. bet:</b></td>
<td bgcolor="white" width="60%"  colspan="3" align="left" valign="center" class="maincontent">&nbsp;<?php echo $maxbet; ?></td>
</tr>
<tr>
<td bgcolor="white" width="40%"  rowspan="10" align="left" valign="top" class="maincontent">&nbsp;<b>Your Horse</b></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent"><b>Color:</b></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent"><b>Chance:</b></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent"><b>Price:</b></td>
</tr> 
<tr>

<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #00FF00"><input type="radio" name="keuze" value="a"></font></td>
    <td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">50%</td>
    <td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 02</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #FFCC99"><input type="radio" name="keuze" value="b"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">40%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 03</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #FF3300"><input type="radio" name="keuze" value="c"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">30%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 04</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #99CCFF"><input type="radio" name="keuze" value="d"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">20%</td>
    <td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 05</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #978055"><input type="radio" name="keuze" value="e"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">10%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 10</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #B5B1DA"><input type="radio" name="keuze" value="f"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">20%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 05</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #FFFF00"><input type="radio" name="keuze" value="g"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">30%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 04</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #CC33FF"><input type="radio" name="keuze" value="h"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">40%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 03</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  align="center" valign="center" class="maincontent"><span style="background-color: #818181"><input type="radio" name="keuze" value="i"></font></td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">50%</td>
<td bgcolor="white" width="20%"  align="left" valign="center" class="maincontent">Bet X 02</td>
</tr>
<tr>
<td bgcolor="white" width="20%"  colspan="4" align="center" valign="center" class="maincontent"><input type="submit" onClick="disableButton(this)" name="start_horse" value="Start the game"  style="border-style: solid; border-width: 1px 1px 1px 1px; font-style: strong"></td>
</tr>
</form> 
</table>


Dus nogmaals , hij doet het wel alleen als ik de actie naar een andere php'tje verwijs. het heeft waarschijnlijk te maken met de volgorde van de code's. En nee ik ga niet een apart php'tje maken met daarin een redirect ;)

Verwijderd

Ik ben niet geïnteresseerd in de PHP code, laat die eens weg, en geef de HTML source. Het zou natuurlijk weleens zo kunnen zijn dat $PHP_SELF helemaal niet bestaat. En strip vooral even alle overbodige troep eruit, zorg dat het werkt, en plemp het er dan weer in.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Voor het disablen van een button heb je Javascript nodig, niet PHP...lijkt me zo. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • SvEn
  • Registratie: Juli 2001
  • Laatst online: 06-12-2025

SvEn

a.k.a sv3nrg

Topicstarter
Verwijderd schreef op 04 augustus 2004 @ 20:31:
Ik ben niet geïnteresseerd in de PHP code, laat die eens weg, en geef de HTML source. Het zou natuurlijk weleens zo kunnen zijn dat $PHP_SELF helemaal niet bestaat. En strip vooral even alle overbodige troep eruit, zorg dat het werkt, en plemp het er dan weer in.
de php code staat er helemaal niet bij , en de javascript staat boven de form

  • SvEn
  • Registratie: Juli 2001
  • Laatst online: 06-12-2025

SvEn

a.k.a sv3nrg

Topicstarter
NMe84 schreef op 04 augustus 2004 @ 20:32:
Voor het disablen van een button heb je Javascript nodig, niet PHP...lijkt me zo. :P
8)7 die staat er bij 8)

Verwijderd

code:
1
<form name="theButton" action="<?php echo $PHP_SELF;?>" method="POST">

Ik zie toch echt PHP.

  • Skaah
  • Registratie: Juni 2001
  • Niet online
PHP:
1
2
3
echo ($_SERVER['PHP_SELF']); // of
echo __FILE__; //of
echo ($_SERVER['REQUEST_URI']);

[ Voor 29% gewijzigd door Skaah op 04-08-2004 20:39 ]


  • SvEn
  • Registratie: Juli 2001
  • Laatst online: 06-12-2025

SvEn

a.k.a sv3nrg

Topicstarter
Verwijderd schreef op 04 augustus 2004 @ 20:37:
code:
1
<form name="theButton" action="<?php echo $PHP_SELF;?>" method="POST">

Ik zie toch echt PHP.
duh , dat is toch deel van het probleem , php_self zorgt ervoor dat hij het form met de waardes naar zichzelf stuurt , ik heb www.gang-nation.com deels zelf geschreven , dus ik weet echt wel wat ik doe

  • SvEn
  • Registratie: Juli 2001
  • Laatst online: 06-12-2025

SvEn

a.k.a sv3nrg

Topicstarter
code:
1
2
3
echo ($_SERVER['PHP_SELF']); // of 
echo __FILE__; //of 
echo ($_SERVER['REQUEST_URI']);
Sorry , dat heeft ook neit geholpen , dat doet de form helemaal niks meer $PHP_SELF doet de job goed.. , zonder de geblokkeerde submit knop dan


sorry voor de dubbelposts |:(

[ Voor 42% gewijzigd door SvEn op 04-08-2004 20:44 ]


  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 15:43

BrZ

Hoe controleer je of het form gesubmit is? Als je dit dmv de waarde van de submit knop doet, zou het kunnen dat dat niet meegestuurd word als je via javascript submit? (weet ik niet zeker)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

wat Cheatah bedoelt is dat wanneer je een client-side probleem hebt, het geen zin heeft om je serverside code te laten zien. Enkel de gegenereerde code is dan nog van belang.

2 opmerkingen:

wat is nou theButton? Is dat je formulier (die heeft namelijk ook een name="theButton" en is daarmee dus bekend in de global namespace) of is dat nou je parameter? Oftewel: ga geen 2 verschillende dingen hetzelfde noemen.

wat is het nut van de javascript submit? je klikt al op een submitbutton, dus tenzij je in een onsubmit handler de submit alsnog cancelled wordt je formulier toch wel gesubmit; nu doe je het in feite 2 keer.
En wat BrZ opmerkt klopt: bij een javascript submit wordt de name-value van je submitbutton niet meegestuurd.

[ Voor 11% gewijzigd door crisp op 04-08-2004 20:52 ]

Intentionally left blank


  • SvEn
  • Registratie: Juli 2001
  • Laatst online: 06-12-2025

SvEn

a.k.a sv3nrg

Topicstarter
crisp schreef op 04 augustus 2004 @ 20:51:
wat Cheatah bedoelt is dat wanneer je een client-side probleem hebt, het geen zin heeft om je serverside code te laten zien. Enkel de gegenereerde code is dan nog van belang.

2 opmerkingen:

wat is nou theButton? Is dat je formulier (die heeft namelijk ook een name="theButton" en is daarmee dus bekent in de global namespace) of is dat nou je parameter? Oftewel: ga geen 2 verschillende dingen hetzelfde noemen.

wat is het nut van de javascript submit? je klikt al op een submitbutton, dus tenzij je in een onsubmithandler de submit alsnog cancelled wordt je formulier toch wel gesubmit; nu doe je het in feite 2 keer.
En wat BrZ opmerkt klopt: bij een javascript submit wordt de name-value van je submitbutton niet meegestuurd.
dat zijn hele goed vragen , ik heb dit scriptje zo van internet geplukt , ik heb nog weinig verstand van javascript .. , maar ik heb alle mogelijke combinaties met code geprobeerd .. , aangezien jij er wel verstand van hebt zou ik je willen vragen om een constructie te maken hoe het wel zou moeten werken

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

Dit heeft niets met Programming & Webscripting te maken; het is een clientside probleem, dus zou het horen in Webdesign & Graphics. Echter, in deze vorm, met de opmerking:
aangezien jij er wel verstand van hebt zou ik je willen vragen om een constructie te maken hoe het wel zou moeten werken
Komt het me te veel over als een script request, waardoor deze in Webdesign & Graphics ook dicht zou gaan.

Verder geven we geen support op andermans scripts; mail de maker of neem een ander script als deze problemen oplevert.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.