Gå til innhold

checkbox med onclick="submit();"-problem


Anbefalte innlegg

Hei,

 

Etter et langt avbrekk har jeg startet med HTML / PHP igjen. Kjenner jeg er virkelig rusten i feltet foreløpig, mye er glemt og jeg merker at mye kunskap uteble når jeg drev på for lenge siden :)

 

Så til problemet;

 

Jeg har et skjema med masse checkbox-elemeter som jeg vil skal bli postet så fort en bruker haker av en boks.

Etter et par kjappe google-søk har jeg kommet fram til at

 


<form name="test" action="" method="post"> 

<input type=checkbox value="neger" name="ola" onClick="submit();">
<input type=checkbox value="neger2" name="ola" onClick="submit();">

</form>

 

produserer det resultatet jeg trenger.

 

Og når jeg tester den koden så får jeg også det resultatet jeg vil oppnå. Problemet oppstår når jeg prøver å implementere det i et større script jeg har. HTML-koden til dette scriptet hvor ønsket auto-submit ikke skjer:

 

		<form action="#" name="processRoutine">
		<table>
			<tr>
				<td class="routinesListings" style="padding: 10px;"><b>dummy category</b></td>
			</tr>

			<tr>
				<td class="routinesListings">ArrayInnhold1</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="ArrayInnhold1" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold2</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="ArrayInnhold2" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold3</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="ArrayInnhold3" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold4</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="ArrayInnhold4" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold5</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="ArrayInnhold5" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold6</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="S ArrayInnhold6" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings">U ArrayInnhold7</td><td class="checkBoxCol"><input type="checkbox" name="exerciseDone" value="ArrayInnhold7" onclick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings" style="padding: 10px;"><b>dummy category</b></td>
			</tr>


			<tr>
				<td class="routinesListings"> ArrayInnhold8</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold8" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold9</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold9" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold10</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold10" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold11</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold11" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold12</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold12" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold13</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold13" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold14</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold14" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold15</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold15" onClick="submit();" /></td>
			</tr>

			<tr>
				<td class="routinesListings"> ArrayInnhold16</td><td class="checkBoxCol"><input type=checkbox name="exerciseDone" value="ArrayInnhold16" onClick="submit();" /></td>
			</tr>
			<input type="submit" value="submit" id="submit" name="submit" />
		</form>
		</table>

 

I mine øyne er det noe veldig rart som gjør at ting ikke fungerer som ønsket. Jeg har nå drevet på i mange timer for å finne feilen, uten å klare det. Motivasjonen er igjen på tur ned i lynets hastighet.

 

Hadde blitt veldig glad om noen html-guruer kunne hjulpet meg her :)

 

På forhånd takk!

Lenke til kommentar
Videoannonse
Annonse

Du kan ikke bare bruker submit() som en funksjon uten videre, hva er javascript relasjonen?

 

 

 

Hint:

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

 

Okei, jeg skal prøve å implementere koden din - men hvorfor fungerer det første scriptet uten javascript-deklerasjon hvis det er nødvendig?

Lenke til kommentar

Jeg er litt for trøtt til å forklare hvorfor, men prøv å bytt ut submit() med document.forms["processRoutine"].submit(). Javascript må vite hvilket skjema (form) du prøver å sende. :)

 

Redigert: Jeg var visst litt for sen.

Endret av Runar
Lenke til kommentar

Først og fremst tusen takk for kjappe svar fra begge - veldig hyggelig :)

 

Så tilbakemeldingen;

 

endret fra

 

onclick="submit();"

 

til

 

onclick="document.forms["processRoutine"].submit()"

 

fortsatt no-go. Jeg holder serriøst på å bli gal nå.

Lenke til kommentar

Forstår veldig godt at det ikke er helt enkelt å hjelpe når klokka er 03.05, men vit at jeg har googla i maaaaaange timer uten å bli klok. Som sagt, de aller fleste gir jo samme tilbakemelding som dere har gitt over, men det vil bare ikke fungere for meg. Det scriptet der VIL IKKE FUNGERE.

 

Som sagt, takk for at dere ivertfall prøvde :) Alltid hyggelig med slike medborgere.

Lenke til kommentar

Du har aktivert javascript i nettleseren din? :)

 

Bruk en nettleser som lar deg snoke i koden, som Firefox (med Web Developer addon) eller Safari (med Developmeny).

 

Redigert: Eller du kan gi oss linken til nettsiden din, hvis den ligger ute på nettet!

Endret av Runar
Lenke til kommentar

Prøv å legg til method="post" i det skjemaet hvor det ikke fungerer.

Først og fremst takk for at dere prøver å hjelpe meg å fikse dette utrolig merkelige problemet.

 

Nå har jeg lagt til method="post" i formen, men fortsatt no-go. Igjen, se kildekoden på http://bodoelv.no/inc/neger.php - problemet blir bare merkeligere å merkeligere for meg for hver gang jeg prøver noe nytt.

Lenke til kommentar

Tusen hjertelig takk. Når jeg fjernet submit-knappen fungerte det som jeg ville :) Igjen, du aner ikke hvor takknemmlig jeg er for hjelpen :) Skulle gjerne spandert på deg en pils ute på byen i Bodø om jeg traff deg!

 

Hvis noen med sterk kunnskap rundt javascript leser tråden kunne det vært artig å hørt hvorfor det ikke funker med submit-knapp.

Lenke til kommentar

Tusen hjertelig takk. Når jeg fjernet submit-knappen fungerte det som jeg ville :) Igjen, du aner ikke hvor takknemmlig jeg er for hjelpen :) Skulle gjerne spandert på deg en pils ute på byen i Bodø om jeg traff deg!

 

Hvis noen med sterk kunnskap rundt javascript leser tråden kunne det vært artig å hørt hvorfor det ikke funker med submit-knapp.

 

Er nok fordi du har satt onclick="submit();" tenker jeg. :hmm:

Og fordi du har onclick="submit();" på hvert element er det ikke noe poeng med submit-knapp, fordi du submitter formen når du trykker i boksen.

 

Når du trykker i en checkbox(alle dine heter exerciseDone) submittes all data(value) med exerciseDone som name.

 

 

Edit:

Lenge siden jeg har drevet med javascript :ermm: Men er noe i den duren :D

Endret av Thomas.
Lenke til kommentar

Hei, og takk for utdypningen :)

 

Nå har det seg sånn at det du sa er blitt et problem for meg, så det passet jo bra med en oppklaring.

 

skulle gjerne hatt en kode-snute som kun sender data for en unik input og ikke en form. altså noe som this.input.submit e.l slik at kun dataen som blir endret blir sendt, framfor som nå - at alle i den gitte form blir sendt.

Lenke til kommentar

skulle gjerne hatt en kode-snute som kun sender data for en unik input og ikke en form. altså noe som this.input.submit e.l slik at kun dataen som blir endret blir sendt, framfor som nå - at alle i den gitte form blir sendt.

 

Du har f.eks mange inputs med tekst med samme navn, og når du endrer value i en input vil du at bare den skal oppdatere seg? Da må du nesten gi dem forskjellig navn.

 

Men unike input (en hidden og et tekstfelt):

<?php
if(isset($_POST['v'])) {
echo 'dat1: ' . $_POST['dat1'] . '<br>';
echo 'dat2: ' . $_POST['dat2'] . '<br><br>';
}
?>

<form method="post">
<input type="hidden" value="data1" name="dat1" />
dat2: <input type="text" name="dat2" value="noe data her(input)" /><br />
Submit: <input type="checkbox" name="v" onclick="submit();" />
</form>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...