formulier met links zonder javascript
Ik wil een overzichtje met een aantal links tonen. Door op een link te klikken moet de waarde van die link gepost worden naar een andere pagina. Omdat het om een setup van een framework gaat leek het me (in 1e instantie) wel mooi om dit zonder javascript te doen zodat het altijd werkt. Maar (correct me if I am wrong) volgens mij moet ik dan voor iedere link een apart formulier genereren en kun je de link alleen versturen door er een submit button van te maken. Klopt dat, of kun je ook (zonder javascript) een tekst string als submit button laten werken?
Toevoeging op 24/06/2011 14:06:56:
Je hebt dus een aantal links:
link 1
link 2
link 3
link 4
link 5
En wat ik wil is als ik op zo'n link klik, dat dan de waarde van die link naar een andere pagina wordt gepost. Kan dit zonder javascript? Zo nee, kan dit wel met javascript... en hoe?
Kijk eens naar de functie 'ajax()'.
Daarmee kan je de waarde van de link doorsturen naar een aparte pagina.
Mocht je hier hulp bij nodig zij dan hoor ik het wel.
moet dit zonder dat de pagina vernieuwd wordt of niet?
Lukie Brink op 25/06/2011 02:14:43:
Als je bekent bent met jquery dan zou ik dat gebruiken hiervoor.
Kijk eens naar de functie 'ajax()'.
Daarmee kan je de waarde van de link doorsturen naar een aparte pagina.
Mocht je hier hulp bij nodig zij dan hoor ik het wel.
Kijk eens naar de functie 'ajax()'.
Daarmee kan je de waarde van de link doorsturen naar een aparte pagina.
Mocht je hier hulp bij nodig zij dan hoor ik het wel.
Oh wat een slim antwoord weer. Bravo, geweldig, goed zo.
Als je niet weet waar je het over hebt, reageer dan niet.
jQuery is javascript!
Kan je niet het beste gewoon een link gebruiken en in die link je waarde meegeven. Dan kan je dit weer uitlezen met $_GET?
Om een tekstlink een formulier te laten submitten heb je javascript nodig. Ik heb twee kanttekeningen. Ten eerste lijkt het me niet erg om javascript te gebruiken. Het is niet zo dat je script door duizenden mensen gezien gaan worden. Als iemand echt je framework wil installeren en hij behoort tot de 5% die javascript heeft uitstaan dan zou hij ongetwijfeld het aan willen zetten. Zeker als je aangeeft dat javascript aan moet staan. Het script hoeft ook maar één keer te draaien. Mijn tweede kanttekening: waarom wil je geen GET request? Zit daar een nadeel aan die POST niet heeft? Het lijkt me allemaal vrij omslachtig en onnodig om een constructie te bedenken met een groot aantal forms en alles.
@The Force: het lijkt me beter om het te posten, want ik wil niet dat het script via de browser kan worden aangeroepen met GET parameters. Het enige wat ik nog zou kunnen doen is voor iedere link een formulier maken met een button.
Link 1 [button]
Link 2 [button]
enz.
Maar als je pecht hebt dan staan er ineens 30 formulieren op een pagina... ook niet echt wat je wilt :( Het alternatief is om het dan toch met javascript te doen. Iemand die weet hoe ik dat het beste kan aanpakken? Op de een of andere manier moet dan de waarde van de link in een hidden form field terecht komen of zo??? :-s
Dat is weer zo'n vorm van schijnbeveiliging. Als iemand je wil hacken dan maakt het niet uit of je een GET of POST request hebt. Zorg er gewoon voor dat je de data goed controleert voordat je het gebruikt, dat scheelt je een hoop javascript en extra HTML.
Maar goed, weet iemand hoe ik dit dan met javascript zou moeten doen?
JS:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$(document).ready(function() {
//"a" eventueel wat specifieker formuleren, zodat niet alle links op de pagina het onderstaand lot ondergaan :).
//Werkt net zoals CSS :).
$("a").click(function() {
//De val(ue) van de hidden input wordt de inhoud van de link waarop geklikt is (this).
$("input[name='linkvalue']").val($(this).text());
//Pas dit ook eventueel aan naar het specifieke formulier.
$("form").submit();
return false;
});
});
//"a" eventueel wat specifieker formuleren, zodat niet alle links op de pagina het onderstaand lot ondergaan :).
//Werkt net zoals CSS :).
$("a").click(function() {
//De val(ue) van de hidden input wordt de inhoud van de link waarop geklikt is (this).
$("input[name='linkvalue']").val($(this).text());
//Pas dit ook eventueel aan naar het specifieke formulier.
$("form").submit();
return false;
});
});
Zo uit mijn hoofd.
Gewijzigd op 25/06/2011 19:50:26 door The Force
->
$("input[name='linkvalue']").val($(this).html());
obviously heeft een a element geen methode html.
Hehe tuurlijk dat had $(this).text() moeten zijn XD. Pas het even aan.
Kan dit ook zonder jQuery?
Ja :)
weet je ook hoe?
Ik zal later vanavond eventueel de js code hiervoor maken.
Gewijzigd op 25/06/2011 20:34:37 door Wouter J
Bedankt alvast!
Mag ik vragen naar de reden waarom je geen jQuery (of soortgelijk framework) zou willen gebruiken?
Ja dat mag... ik ga dat wel gebruiken... maar dit is een onderdeel van het install script en daar wil ik het nog even zonder jQuery zien op te lossen.
Vraag ik me nog steeds af waarom, maar goed dat moet je zelf weten.
Maak je er niet druk om... ik wil het hier nog even niet gebruiken, that's all.