Het zoveelste javascript-form-submit draadje

Pagina: 1
Acties:

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 12:31

Kaastosti

Vrolijkheid alom!

Topicstarter
Jaja, het is weer zover, een heel vers javascript-form gebeuren draadje. Het lijkt allemaal zo simpel, maar ik kom er niet meer uit. Search gebruikt, topics gelezen, google gezocht, allerlei mogelijkheden getest, resultaat 0.

Ik heb een form die ik heel simpel door een klik op een link wil laten submitten, zoals dat al heel lang gedaan wordt. Dit heb ik geprobeerd met een eigen functie schrijven en die aanroepen, direkt een form submit uitvoeren bij een onClick event etc.

Het is de bedoeling dat de waarden uit de form als POST-vars met php uitgelezen kunnen worden. Helaas heb ik tot nu toe nog geen enkele var mogen zien. Dit heb ik op dit moment staan:

JavaScript:
1
2
3
4
5
6
<script language="javascript">
function submitform()
{
 document.dirform.submit();
}
</script>

Dat is dus de functie die de form met de naam 'dirform' moet submitten. Een aparte functie, zodat ik eventueel later nog wat checks toe kan voegen, maar het moet eerst werken :)

En vervolgens in de html:
PHP:
1
2
3
4
5
6
7
8
9
10
11
echo "<tr>
    <td>[img]'folder.jpg'></td>
[/img]<a href='javascript: submitform()'>".$file."</a></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td align='right' class='perms'><pre>".perms($dir, $file)."</pre></td>
        </tr>";
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST' name='dirform'>";
echo "<input type='hidden' value='".$dir."/".$file."' name='dir'>";
echo "</form>";


Nou goed, zoals gezegd heb ik heel wat geprobeerd, maar ik ben nu eenmaal geen javascript-held :) En nee, die 'lege' td's moeten daar wel staan ivm layout, een colspan is geen optie ;)

De foutmelding in JavaScript console:
Error: document.dirform.submit is not a function

[ Voor 37% gewijzigd door Kaastosti op 04-10-2004 13:56 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

oh oh oh wat ranzig, die form-tags om je tr's; verbeter dat eerst maar eens want dit is puur invalid HTML.

Intentionally left blank


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 12:31

Kaastosti

Vrolijkheid alom!

Topicstarter
Dat weet ik, maar dat maakt voor de werking in dit geval 0,0 uit. Ik wil graag altijd eerst dat iets werkt, dan ga ik daarna wel zorgen dat het helemaal netjes is.. maar ok, om iedereen een plezier te doen dan :)

Hij hoeft er niet eens omheen, aangezien alleen die hidden type meegegeven hoeft te worden... dat zou sowieso op deze manier goed moeten komen.

[ Voor 26% gewijzigd door Kaastosti op 04-10-2004 13:56 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Geef je form een id en dan:

code:
1
document.getElementById("formuliernaam").submit();


En zoals crisp zegt: de form tags om je tabel heen zetten.

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 12:31

Kaastosti

Vrolijkheid alom!

Topicstarter
Ermm nou nee, niet om m'n tabel alsjeblieft :) Er moet nog meer gaan gebeuren en daar past die form helemaaaal niet in :P Maar een kijken naar jouw oplossing... volgens mij had ik die ook al eens gehad.

Hij doet er in ieder geval _iets_ mee :P Da's al meer dan dat ik had... bedankt!

[ Voor 19% gewijzigd door Kaastosti op 04-10-2004 14:04 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Dit werkt gewoon (ook al is het ueberranzig):

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
<html>
<head>
<title>test</title>
<script type="text/javascript">

function submitform()
{
 document.dirform.submit();
}


</script>
</head>
<body>
<table>

<?php

$dir = 'foo';
$file = 'bar';

function perms($a,$b) { return $a.$b; }

echo "<tr> 
    <td><img src='folder.jpg'></td> 
        <td><a href='javascript: submitform()'>".$file."</a></td> 
        <td> </td> 
        <td> </td> 
        <td> </td> 
        <td align='right' class='perms'><pre>".perms($dir, $file)."</pre></td> 
        </tr>"; 
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST' name='dirform'>"; 
echo "<input type='hidden' value='".$dir."/".$file."' name='dir'>"; 
echo "</form>";

?>

</table>
</body>
</html>


En zet die form nou gewoon in een table-cell.

@André: een id is inderdaad beter want in strict heeft een form geen name-attribuut. Ook met een id werkt dit gewoon:
JavaScript:
1
document.forms['id_van_je_form'].submit();


Ik vermoed trouwens dat Kaastosti meerdere forms in z'n document heeft staan met dezelfde name ;)

Intentionally left blank


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 08:47

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

* Thijsmans denkt dat die form-tag binnen de tabel staat omdat je anders standaard een margin krijgt. Dit is echter makkelijk uit te zetten dmv CSS:

Cascading Stylesheet:
1
2
3
4
form
{
    margin: 0;
}


:)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

crisp schreef op 04 oktober 2004 @ 14:05:

Ik vermoed trouwens dat Kaastosti meerdere forms in z'n document heeft staan met dezelfde name ;)
Dat vermoedde ik ook al aangezien hij nu wel werkt volgens hem :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Prammenhanger schreef op 04 oktober 2004 @ 14:11:
* crisp denkt dat die form-tag binnen de tabel staat omdat je anders standaard een margin krijgt. Dit is echter makkelijk uit te zetten dmv CSS:

Cascading Stylesheet:
1
2
3
4
form
{
    margin: 0;
}


:)
Dat mag toch ondertussen wel als algemeen bekent beschouwd worden lijkt me...

Intentionally left blank


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 12:31

Kaastosti

Vrolijkheid alom!

Topicstarter
* Kaastosti heeft inderdaad meerdere forms, maar die hebben allemaal een unieke naam... lang leve automatisch naam genereren :) Het submitten werkt nu in ieder geval. De functie heeft nu gewoon 1 argument, de naam van de form die gesubmit moet worden, werkt perfect :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.

Pagina: 1