Javascript omzetten naar gewone HTML

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paco de Wulp

Paco de Wulp

22/05/2015 12:58:22
Quote Anchor link
Ik wil javascript zo min mogelijk gebruiken in mijn code.

Mijn javascript code is nu:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $buttons = '<input type=button class=headline onClick=location.href="MEN100P.php" value=Terug> <input type=button class=headline onClick=location.href="SYS030P.php?modus=2" value=Toevoegen>'; ?>


Ik wil naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $buttons = '<form method=get action="MEN100P.php"><button class=headline type=submit>Terug</button></form><form method=get action="SYS030P.php?modus=2"><button class=headline type=submit>Toevoegen</button></form>'; ?>


In de 1ste oplossing(javascript) staan de 2 buttons netjes achter elkaar (en zo wil ik het hebben). Echter in de 2de oplossing(HTML) komen de buttons onder elkaar te staan, waarschijnlijk vanwege de FORM-tags.

Is hier een oplossing voor, om de buttons toch achter elkaar te krijgen ?
Gewijzigd op 22/05/2015 16:52:48 door Paco de Wulp
 
PHP hulp

PHP hulp

28/03/2024 20:45:28
 

22/05/2015 13:58:22
Quote Anchor link
Een <form>-tag wordt default onder elkaar gerendered ja.. maar dat is met (inline) CSS op te lossen (iets als style="display:inline").
Wat is volgens jou het verband tussen zo min mogelijk JavaScript gebruiken en CSS? :-)
 
Thomas van den Heuvel

Thomas van den Heuvel

22/05/2015 14:11:10
Quote Anchor link
Uhm... Waarom niet gewoon buttons met type button + onclick events? Tis niet alsof je form data wilt versturen? Buttons met type "button" mogen volgens mij best "in het wild" (buiten form tags) voorkomen.

Daarnaast: waarom druk je statische lappen HTML af via(dit is naar waarschijnlijkheid) PHP?

Tevens: alle waarden van HTML-attributen dienen tussen "dubbele quotes" te staan.

De reden waarom je button tags op twee verschillende regels staan is omdat er form-tags omheen zitten. Een form tag is een BLOCK LEVEL ELEMENT.

Als ik jou was zou ik eens bij het begin beginnen. De normale volgorde van dingen ontdekken / leren is meestal: HTML > CSS >JavaScript > [een of andere serverside scriptingtaal] > [een of andere databasetype].

Het probleem is dat een heleboel mensen aan het einde beginnen...
 

22/05/2015 14:28:17
Quote Anchor link
Ben zelf begonnen bij de database, destijds MySQL. Ik begin PHP steeds meer te zien als doorgeefluik van data tussen de database en de client. Mijn streven is juist om zo min mogelijk in PHP te doen. En dan nog is er een heleboel te doen in PHP. Het liefst zou ik alles in de database doen, ook de code (model en controller). Maar je moet toch altijd een vertaalslag maken voor de 'nonteknischen lookenpeepers'. Interactiviteit zoveel mogelijk in JavaScript.
Het is overigens wel meer geredeneerd vanuit het perspectief van een niet-per-definitie-zoekmachine-vriendelijke-webapplicatie dan van een SEO-geoptimaliseerd CMS.
Gewijzigd op 22/05/2015 14:29:19 door
 
Paco de Wulp

Paco de Wulp

22/05/2015 16:00:28
Quote Anchor link
Bedankt voor de tips.

@An
Quote:
Wat is volgens jou het verband tussen zo min mogelijk JavaScript gebruiken en CSS? :-)

Ik wil, omdat javascript in principe is uit te schakelen, zo min mogelijk javascript gebruiken door zoveel mogelijk in standaard HTML doen, zodat mijn applicatie ook zonder javascript werkt. Of zou ik gewoon mijn applicatie niet toegankelijk moeten maken voor browsers zonder javascript (<noscript>) ?

@Thomas
Quote:
Waarom druk je statische lappen HTML af via(dit is naar waarschijnlijkheid) PHP?

Omdat deze variabele $buttons variable is. Het betreft hier dan ook slechts maar een klein lapje statische HTML. Ik neem verder je pedagogische tips ter harte.


Ik heb het nu zo opgelost:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $buttons = '<a href ="MEN100P.php"> <button class=headline>Terug</button></a> <a href="SYS030P.php?modus=2"> <button class=headline>Toevoegen</button></a>'; ?>
Gewijzigd op 22/05/2015 16:54:58 door Paco de Wulp
 

22/05/2015 16:07:51
Quote Anchor link
Belangrijk is om wat voor soort applicatie het gaat. Ik mijd zoveel mogelijk JavaScript om dezelfde reden, maar soms kom je er gewoon niet zonder. Het programmeren van unobstrusive JavaScript kan soms nogal een klus zijn. Niet in simpele dingetjes als een CSS-menu, die dingetjes kunnen altijd wel zonder JavaScript.
Voor ingewikkelder dingetjes heb ik een keer gekozen voor een simpeler oplossing waarbij de JavaScript fallback automatisch gaat; de modules spuwen HTML en CSS, die worden als het even kan via AJAX geserveerd. Als fallback wordt een hele pagina opnieuw opgebouwd zonder JavaScript wat natuurlijk trager is, maar het werkt dan nog wel. Dat leidde op zijn beurt weer tot interessante situaties waarbij bugs soms niet gezien worden en leidden tot een complete page reload (vooral in IE8..), maarja, niets is perfect.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/05/2015 00:26:41
Quote Anchor link
CSS is ook uit te schakelen of te manipuleren. Daarnaast durf ik te stellen dat de gebruiker die javascript uitschakelt geen leven heeft online :p

Oh en HTML kunnen we ook mee doen wat we willen. een PDF ook. een Image ook.

Wij zijn zo stom om die dingen aan te bieden. We laten het van onze server afhalen en we zeggen vervolgens "doe er maar mee wat je wilt"
Gewijzigd op 23/05/2015 00:36:42 door Frank Nietbelangrijk
 
Willem vp

Willem vp

23/05/2015 07:23:35
Quote Anchor link
Je hebt elke button in een eigen form. In HTML5 kun je ook beide buttons in 1 form zetten en elke button zijn eigen formaction-property geven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form action="">
   <button type="submit" formaction="MEN100P.php" value="Terug">
   <button type="submit" formaction="SYS030P.php?modus=2" value="Toevoegen">
</form>
Gewijzigd op 23/05/2015 07:24:54 door Willem vp
 
Paco de Wulp

Paco de Wulp

23/05/2015 09:32:05
Quote Anchor link
Conclusie:

Ik verplicht gebruikers van mijn applicatie om javascript te hebben ingeschakeld.
Wel zorg ik ervoor dat eventuele validaties correct worden afgehandeld in geval javascript toch wordt uitgeschakeld.

P.S. Indien ik javascript uitschakel in mijn browser, doen inderdaad een heleboel websites het gewoon niet meer. Soms krijg ik gewoon een blanco scherm.
Gewijzigd op 23/05/2015 09:33:50 door Paco de Wulp
 
Thomas van den Heuvel

Thomas van den Heuvel

23/05/2015 09:51:42
Quote Anchor link
Dit heeft naar mijn mening nog steeds de schijn van een navigatie probleem (mogelijk in combinatie met authorisatie?). Ik zie nog steeds niet in wat JavaScript hier uberhaupt mee te maken heeft -dit is slechts een middel, en in dit geval waarschijnlijk niet het goede-, of wat er nu "variabel" is aan de de HTML, zijn dit enkel de getoonde URLs?

Het klinkt nog steeds alsof je, wat je uiteindelijk ook probeert te bereiken (misschien ook handig om dit verder uit de doeken te doen zodat we een passende oplossing kunnen aanbieden of op zijn minst mee kunnen denken), iets op de verkeerde plek en op de verkeerde manier aan het oplossen bent.

Om ergens naartoe te navigeren volstaan hyperlinks prima, je hoeft hiervoor dus absoluut geen afhankelijkheid van JavaScript voor te introduceren.

EDIT: wanneer de URLs van zichzelf (door hun vorm) op een of andere manier voor "beveiliging" zorgen dan is er sowieso iets mis met het ontwerp van je applicatie qua security.
Gewijzigd op 23/05/2015 09:57:32 door Thomas van den Heuvel
 
Paco de Wulp

Paco de Wulp

23/05/2015 12:29:47
Quote Anchor link
@Thomas:
Quote:
Het klinkt nog steeds alsof je, wat je uiteindelijk ook probeert te bereiken, iets op de verkeerde plek en op de verkeerde manier aan het oplossen bent.

Dit was inderdaad zo, daarom de navigatie nu opgelost met HTML. Met de authorisatie zit het wel goed.

Ooit word ik nog wel eens een echte programmeur. :-)
 

23/05/2015 16:19:55
 



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.