Toon posts:

[PHP/JS] na radiobutton hebben geselecteerd,bijbehorende URL

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi ik wil met PHP een scriptje maken, voor een administrator pagina. ik vind dat dat er wel een beetje leuk maar simpel uit moet zien.

http://members.lycos.nl/leonupload/admin.php

dat heb ik nu gemaakt, maar ik wil dus dat als je bijv op bewerk database klikt, dat de submitbutton edit.php opent. en bij bekijken view.php en bij verwijderen del.php

ik zit nu al 2,5 uur te hameren op dit scriptje, tig sites bezocht, maar het lukt me gewoon niet:S heb al veel geprobeerd.

iemand enig idee hoe je dit zou kunnen doen? mijn script;

PHP:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    background-image:  url(NUV/frameset/images/pattroon.jpg);
    background-color: #CCCCCC;
}
body,td,th {
    font-family: verdana;
    color: #996600;
}
.style1 {font-size: 10px}
-->
</style></head>

<body>
<p align="center">Website onderhoudpagina</p> 
<p align="center">Klik hieronder aan wat u wilt doen</p> 
<form name="form1" method="post" action=""> 
   <table width="318" border="1" align="center"> 
     <tr align="center"> 
       <td width="94" height="67"><p class="style1"> 
           &nbsp;&nbsp;&nbsp;&nbsp; 
           <input name="admin" type="radio" value="edit"> 
       </p> 
        <p class="style1">Databasegegevens wijzigen </p></td> 
       <td width="102"><p class="style1"> 
         &nbsp;&nbsp; 
         <input name="admin" type="radio" value="view"> 
       </p> 
       <p class="style1">Databasegegevens bekijken </p>         <span class="style1"></span></td> 
       <td width="100"><p class="style1"> 
          &nbsp;&nbsp; 
          <input name="admin" type="radio" value="del"> 
       </p> 
       <p class="style1">Databasegegevens verwijderen </p>         </td> 
     </tr> 
   </table> 
   <p align="center"> 
     <input type="submit" name="Submit" value="Ga naar pagina"> 
   </p> 
  <? 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
header ('Location: ' . $_POST['$admin'] . '.php'); 
} 
?>

</form> 
<p align="center">&nbsp; </p> 
</body> 
</html>

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je hebt al uitvoer verstuurd op het moment dat je de location header zet. Dat kan niet, je mag geen uitvoer hebben voor je headers.

'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.


  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

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
<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    header ('Location: ' . $_POST['admin'] . '.php'); 
} 
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    background-image:  url(NUV/frameset/images/pattroon.jpg);
    background-color: #CCCCCC;
}
body,td,th {
    font-family: verdana;
    color: #996600;
}
.style1 {font-size: 10px}
-->
</style></head>

<body>
<p align="center">Website onderhoudpagina</p> 
<p align="center">Klik hieronder aan wat u wilt doen</p> 
<form action="" method="post" name="form1" target="_self"> 
   <table width="318" border="1" align="center"> 
     <tr align="center"> 
       <td width="94" height="67"><p class="style1"> 
           &nbsp;&nbsp;&nbsp;&nbsp; 
           <input name="admin" type="radio" value="edit"> 
       </p> 
        <p class="style1">Databasegegevens wijzigen </p></td> 
       <td width="102"><p class="style1"> 
         &nbsp;&nbsp; 
         <input name="admin" type="radio" value="view"> 
       </p> 
       <p class="style1">Databasegegevens bekijken </p>         <span class="style1"></span></td> 
       <td width="100"><p class="style1"> 
          &nbsp;&nbsp; 
          <input name="admin" type="radio" value="del"> 
       </p> 
       <p class="style1">Databasegegevens verwijderen </p>         </td> 
     </tr> 
   </table> 
   <p align="center"> 
     <input type="submit" name="Submit" value="Ga naar pagina"> 
   </p> 


</form> 
<p align="center">&nbsp; </p> 
</body> 
</html>

Verwijderd

Als 1e; je kunt geen header() gebruiken als je alreeds HTML naar de cliënt hebt gestuurd (of andere stoort van output).

Dit kun je oplossen door ob_start(); onder je PHP-open tag te zetten. Ik weet niet of dit je probleem oplost.. maar dit is in ieder geval een punt waar je op moet letten. ;)

Zo.. die mensen zijn snel hier; toen ik een reactie aan het typen was had nog niemand gereageerd.

[ Voor 16% gewijzigd door Verwijderd op 14-11-2005 21:31 ]


Verwijderd

Waarom gebruik je hier in hemelsnaam radiobuttons voor? Waarom niet gewoon 3 buttons voor de 3 acties? Of een dropdown met de drie acties?

Verwijderd

Topicstarter
dat kan ook ja, maar als ik 3 buttons heb, dan moet ik toch 3x dit doen

PHP:
1
2
3
4
</form> 
<form name="form2" method="post" action="view.php">
  <input name="view" type="submit" id="view" value="Laat DB zien">
</form>


3 forms maken, met elk 3 verschillende acties (naar de pagina's)

nu opend hij toch view.php als ik daarop druk? (zonder die <? tags, die GoT zelf toevoegd)

[ Voor 23% gewijzigd door Verwijderd op 14-11-2005 21:38 ]


  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Verwijderd schreef op maandag 14 november 2005 @ 21:30:Dit kun je oplossen door ob_start(); onder je PHP-open tag te zetten. Ik weet niet of dit je probleem oplost.. maar dit is in ieder geval een punt waar je op moet letten. ;)
ob_start is gemaakt om met een buffer te kunnen werken.
ob_start gebruiken om je output te verdoezelen is een slechte manier van programmeren.

It's scientifically known, that base improves the tase of cheezes!


  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

PHP:
1
2
3
4
5
6
7
8
9
10
<script language="javascript">
function nav(url)
{
    document.location = url;
}
</script>

<input type="button" value="bla 1" onclick="nav('view.php');">
<input type="button" value="bla 2" onclick="nav('view.php');">
<input type="button" value="bla 3" onclick="nav('view.php');">

[ Voor 33% gewijzigd door dip op 14-11-2005 21:41 ]

It's scientifically known, that base improves the tase of cheezes!


Verwijderd

dip schreef op maandag 14 november 2005 @ 21:38:
[...]

ob_start is gemaakt om met een buffer te kunnen werken.
ob_start gebruiken om je output te verdoezelen is een slechte manier van programmeren.
Juist, maar ik heb ook nergens gezegt dat het een 'schone' mannier van programmeren is. ;)

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Verwijderd schreef op maandag 14 november 2005 @ 21:40:Juist, maar ik heb ook nergens gezegt dat het een 'schone' mannier van programmeren is. ;)
True ;) maar dan mag ik het nog wel even melden.. Het was ook niet op jouw presoonlijk gericht :Y)

It's scientifically known, that base improves the tase of cheezes!


  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

Ik zou persoonlijk trouwens drie icoontjes Photoshoppen en dan gewoon linkjes maken. Maarja, wie ben ik?

  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Je hebt helemaal geen php nodig...en je hoeft maar 1 form te hebben met daarin 3 radio inputs. Geef die 3 inputs de zelfde naam (in het voorbeeld even name="goTo") en als value het url wat je wil gebruiken voor iedere optie.

onClick="javascript:document.location.href='document.forms[0].goTo.value'";

Zet de onClick in de <INPUT type="button">. Niet getest. Als dit niet werkt moet je iig in deze richting denken.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Bram77: leuk en aardig, maar als JS uit staat, dan werkt je systeempje niet meer. ;)

Bovendien is het onclick en niet onClick. :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.


  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Sja, als je daar rekening mee moet gaan houden. Er zijn maar héél weinig mensen die js hebben uit staan. En die kunnen dan zowiezo 80% van de websites niet of niet fatsoenlijk bekijken/gebruiken. Dus ééntje meer of minder .... :P

onClick werkt ook, in alle browsers voor zover ik weet, en is een stuk overzichtelijker.

[ Voor 7% gewijzigd door Bram77 op 14-11-2005 21:49 ]


Verwijderd

Topicstarter
leuk en aardig maar het werkt niet |:( ik krijg dan gewoon een invoerveld waar submit in staat:S

aaaaaaah, wat een tijdrovend iets!!!

zo moeilijk hoeft dat toch niet te wezen?

  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Dan heb je mijn antwoord niet helemaal goed begrepen denk ik.
Krijg je een invoerveld op de plek waar een button zou moeten staan?

code:
1
<input type="button" value="Submit" name="submit" onClick="javascript:document.location.href='document.forms[0].goTo.value';">

[ Voor 50% gewijzigd door Bram77 op 14-11-2005 21:59 ]


  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
code:
1
<input type="submit" name="onclick="javascript:document.location.href='document.forms[0].radiobutton.value'";" value="nerd">


Is jouw button.....

dit kan in het bijzonder niet goed gaan natuurlijk....
name="onclick="javascript:document.location.href='document.forms[0].radiobutton.value'";"

[ Voor 70% gewijzigd door Bram77 op 14-11-2005 21:58 ]


Verwijderd

Topicstarter
<form name="form1" method="post" action="">
<input name="radiobutton" type="radio" value="view.php">
<input name="radiobutton" type="radio" value="edit.php">
<input name="radiobutton" type="radio" value="del.php">
<input type=onclick="javascript:document.location.href='document.forms[0].radiobutton.value'";" name="Submit" value="nerd">
</form>

moet het zo dan? (aaah ik word hier echt helemaal gek van dit gescript:S)

  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Het is super simpel, je moet gewoon wat meer geduld hebben want je maakt de zelfde fout op een andere manier...... Wat ik je zei klopt ook niet helemaal trouwens.


Dit lijkt er meer op....

<input type="button" value="Submit" name="submit" onClick="javascript:document.location.href=document.forms[0].goTo.value;">

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Bram heeft het een paar posts hierboven letterlijk voorgedaan? :?

'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.


  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Hoppa, kant en klare oplossing.... Om je tegenzin misschien een beetje weg te halen :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
<body>
<script>
 theUrl = "";
</script>

<form name="form1" method="post" action="">
  <input name="radiobutton" type="radio" value="edit.php" onClick="theUrl=this.value">
  <input name="radiobutton" type="radio" value="admin.php" onClick="theUrl=this.value">
  <input name="radiobutton" type="radio" value="view.php" onClick="theUrl=this.value">
  <input type="button" onclick="javascript:document.location.href=theUrl" value="nerd">
</form>
</body>

Verwijderd

Topicstarter
gelukt!!!!!

pfff, na bijna 4 uur kloten met zo'n simpel scriptje ben ik er wel weer flauw van!!!

hartstikke bedankt bram77!!! hierbij benoem ik je tot officieel Diehard-Scripter!!!

;)

maar dit was dus niet mogelijk met php? (niet dat dat nu nog wat uitmaakt maar ok)

hij geeft nu alleen nog error 404 weer, maar dta komt om dat ik view, edit en del.php nog ff moet aanmaken ;) daarin is de bedoeling dat daar database opties inkomen! daar ga ik me morgen mee bezig houden, bedankt alvast!!!!

edit:

ik had het zelf nog aangepast:P na het posten van dit bericht, zag ik dat bram voor me had gepost ;)

[ Voor 11% gewijzigd door Verwijderd op 14-11-2005 22:17 ]


Verwijderd

code:
1
2
3
<input type="button" value="edit" onclick="javascript:document.location.href=edit.php">
<input type="button" value="admin" onclick="javascript:document.location.href=admin.php">
<input type="button" value="view" onclick="javascript:document.location.href=view.php">


a) minder code
b) geen onjuist gebruik van radiobuttons

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:13

crisp

Devver

Pixelated

Bram77 schreef op maandag 14 november 2005 @ 21:44:
onClick="javascript:document.location.href='document.forms[0].goTo.value'";
Zo, dat zijn wel 6 fouten/slordigheden in 1 regel:

1) onClick -> onclick voor XHTML conformance
2) javascript: in een eventhandler is nutteloos; het is een handler, geen url met een pseudo-protocol
3) location is een property van het window object, location als property van het document object is deprecated en was oorspronkelijk bedoelt als read-only property. Inmiddels is dat vervangen door document.URL (read-only)
4) document.forms[0]; wie zegt dat er niet meer forms in de pagina staan? En waarom maak je niet gewoon gebruik van de scope waarin de handler wordt uitgevoerd?
5) ranzige dot-notatie; gebruik liever de elements collection van je form.
6) Als goTo bijvoorbeeld een reeks radiobuttons is dan is elements['goTo'] zelf ook weer een collection.

nettere manier:
code:
1
onclick="window.location.href=this.value"

maar je blijft inderdaad afhankelijk van javascript, dus zorg dat als je het formulier submit je script ook je keuze kan verwerken...

overigens is het nog netter om met een onsubmit handler te werken...

en verder wat hezik zegt: gebruik liever een dropdown of buttons (hoewel heziks voorbeeld ook slordigheden bevat en zelfs een grote fout waardoor het niet werkt ;) )

[ Voor 21% gewijzigd door crisp op 14-11-2005 22:45 ]

Intentionally left blank


Verwijderd

crisp schreef op maandag 14 november 2005 @ 22:37:
en verder wat hezik zegt: gebruik liever een dropdown of buttons (hoewel heziks voorbeeld ook slordigheden bevat en zelfs een grote fout waardoor het niet werkt ;) )
:P ej, generalist meldt zich.. het gaat om het principe, de details moet ie zelf uitwerken :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:13

crisp

Devver

Pixelated

iig clientside --> Webdesign & Graphics

Intentionally left blank


Verwijderd

Topicstarter
dit gaat alleen om administrator pagina, niet voor gasten dus ;)

tis gelukt, ik dank u allen :D nu de pagina nog een beetje pimpen met icons enzow ;) (dankzij tip van vorige blz)

  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Ja hé, ik claim ook niet alwetend te zijn....het werkt daar ging het om :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:13

crisp

Devver

Pixelated

Bram77 schreef op dinsdag 15 november 2005 @ 00:20:
Ja hé, ik claim ook niet alwetend te zijn....het werkt daar ging het om :)
Daarom neem ik ook de tijd om het uit te leggen ;)
Dat iets werkt wil niet zeggen dat het altijd goed is, als je zo gaat denken dan blijven we nog jaren met allerhande legacy zitten en ranzige scripts :P

Intentionally left blank


Verwijderd

misschien rare vraag, maar waarom gebruik je niet gewoon links?, links kan je best leuk stylen, heel snel klein voorbeeldje
Pagina: 1