webForumDet fria alternativet

Form och insert på samma sida, fungerar illa

4 svar · 210 visningar · startad av kittlos

kittlosMedlem sedan sep. 2002205 inlägg
#1

Jag har en formulärsida, som pekar på sig själv och infogar data i databasen.

Dock slutade den fungera när jag bytte ut submitknappen mot en button som kollar formuläret med ett javascript. Om allt stämemr skickar den vidare formuläret.

Här är den väsentliga koden:

<?
if (isset($_POST['SubmitButton']))
{
include ("common.inc");
$query = "INSERT INTO bilder (image,height,width,text,comment,status) VALUES ('$name','$height','$width','$text','$comment','index')";
$result = mysql_query("$query");
}
?>

<script language="JavaScript1.2">
<!--
function validateForm()
{
var f = document.forms[0];

if(f.name.value=='') alert("Skriv in en sökväg eller välj en fil!");
// else if(f.name.value!='Q:\Romulus2\*') alert("Filen ligger inte i Romulus-mappen!");
else if(f.width.value=='') alert("Fyll i bildens bredd!");
else if(f.text.value=='') alert("Skriv in sökord!");
else f.submit();
}
//-->
</script>

<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">

Blablabla de olika fälten i formuläret

<br><br><input type="button" value="Lägg till bild" name="SubmitButton" onClick="validateForm();">
</form>

Vad är fel? Misstänker att det är i if (isset($_POST['SubmitButton'])) det ligger, men jag vet inte hur jag ska göra det annorlunda.

/c

kittlosMedlem sedan sep. 2002205 inlägg
#2

Kanske ska tillägga att sidan skickas, men datan infogas ej. Det gör den dock om jag byter tillbaks till en submit-knapp och skippar javafunktionen. Funktionen i sig fungerar dock.

MatteMedlem sedan aug. 20002 975 inlägg
#3

Det verkar som variabeln från button inte skickas för dig. Vill du inte byta ut button så kan du ju alltid köra if(isset()) mot något annat fält som finns i formuläret, alternativt lägga dit en hidden.

kittlosMedlem sedan sep. 2002205 inlägg
#4

Jag förstår inte riktigt hur du menar. Kan du ge exempel?

tacksam för hjälp

MatteMedlem sedan aug. 20002 975 inlägg
#5

Om ditt formulär t.ex ser ut så här:

<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>"> 

<input type="hidden" name="Tjosan" value="">
<input type="text" name="hejhopp">

<br><br><input type="button" value="Lägg till bild" name="SubmitButton" onClick="validateForm();"> 
</form>

där hejhopp är ett av dina blablafält. Då kan kan du göra så här i skriptet som tar emot:

<?php
if (isset($_POST['hejhopp']))

// eller

if (isset($_POST['Tjosan']))
?>

Förmodar att det är valideringen du försöker göra. Då går det bra att göra så här också:

<script language="JavaScript1.2"> 
<!-- 
function validateForm() 
{ 
var f = document.forms[0]; 

  if(f.name.value==''){
    alert("Skriv in en sökväg eller välj en fil!");
    return false;
  } 
// else if(f.name.value!='Q:\Romulus2\*') alert("Filen ligger inte i Romulus-mappen!"); 
  else if(f.width.value==''){
    alert("Fyll i bildens bredd!");
    return false;
  } 
  else if(f.text.value==''){ 
    alert("Skriv in sökord!");
    return false;
  } 
  else return true;
} 
//--> 
</script> 

<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>" onsubmit="return validateForm()"> 

Blablabla de olika fälten i formuläret 

<br><br><input type="submit" value="Lägg till bild" name="SubmitButton"> 
</form>
152 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)