Avatar billede martinbk Nybegynder
13. juni 2003 - 22:48 Der er 12 kommentarer og
1 løsning

data slettes i min form ved brug af alert

jeg har følgende simple kode:

<form method="post">
<table border="1px">
    <tr>
        <td>CD</td>
        <td><input type="text" name="cd_nr" maxlength="4" size="4" autocomplete=OFF value="<?=$row[cd_nr];?>"></td>
    </tr>
    <tr>
        <td>Nr</td>
        <td><input type="text" name="nr_nr" maxlength="2" size="2" autocomplete=OFF value="<?=$row[nr_nr];?>"></td>
    </tr>
    <tr>
        <td>Kunstner</td>
        <td><input type="text" name="artist" size="50" autocomplete=OFF value="<?=$row[artist];?>"></td>
    </tr>
    <tr>
        <td>Titel</td>
        <td><input type="text" name="titel" size="50" autocomplete=OFF value="<?=$row[titel];?>"></td>
    </tr>
</table>
<table>
    <tr>
        <td><input type="submit" name="submit" value="Ret sangen"></td>
   
    </tr>
</table>
</form>
<?
if ($_POST[submit]) {
    if ($_POST[cd_nr] == "") {
        echo "<script> alert('du skal skrive et cd nr'); </script>";
    }
    elseif ($_POST[nr_nr] == "") {
        echo "<script> alert('du skal skrive et track nr'); </script>";
    }
    elseif ($_POST[artist] == "") {
        echo "<script> alert('du skal skrive en artist'); </script>";
    }   
    elseif ($_POST[titel] == "") {
        echo "<script> alert('du skal skrive en titel'); </script>";
    }
}
?>

mit problem ligger nu i hvis en alert bliver sendt til brugerens browser slettes alle data, og det er jeg ikke interreseret i, håber nogen kan hjælpe (PS ved ikke helt om dette er den rigtige kategori men jeg prøver nu lykken)
Avatar billede skovenborg Nybegynder
13. juni 2003 - 23:07 #1
Det er fordi du submitter din form, så slettes dataerne. Løsningen kunne være at lade være med at bruge PHP og validerer formen med javascript.
Avatar billede skovenborg Nybegynder
13. juni 2003 - 23:08 #2
ellers skal du hellere bruge <input type="button"> i stedet.
Avatar billede skovenborg Nybegynder
13. juni 2003 - 23:11 #3
Du burde egentlig flytte den til PHP kategorien, medmindre du kan nøjes med almindelig javascript.
Avatar billede martinbk Nybegynder
13. juni 2003 - 23:17 #4
det er da vel mugligt at validere formen med java script og hvis den er gyldig submitte til php ?
Avatar billede skovenborg Nybegynder
13. juni 2003 - 23:31 #5
Jaja, du kan gøre det på den her måde:
<head>
<script language="javascript">
function valider()
{

        if (document.form1.cd_nr.value == "") alert('du skal skrive et cd nr');
    else if (document.form1.nr_nr.value == "") alert('du skal skrive et track nr');
    else if (document.form1.artist.value == "") alert('du skal skrive en artist');
        else if (document.form1.titel.value == "") alert('du skal skrive en titel');
    else document.form1.submit();

}
</script>
</head
<body>

<form method="post" action="enandensidemedphp.php">
<table border="1px">
    <tr>
        <td>CD</td>
        <td><input type="text" name="cd_nr" maxlength="4" size="4" autocomplete=OFF value="<?=$row[cd_nr];?>"></td>
    </tr>
    <tr>
        <td>Nr</td>
        <td><input type="text" name="nr_nr" maxlength="2" size="2" autocomplete=OFF value="<?=$row[nr_nr];?>"></td>
    </tr>
    <tr>
        <td>Kunstner</td>
        <td><input type="text" name="artist" size="50" autocomplete=OFF value="<?=$row[artist];?>"></td>
    </tr>
    <tr>
        <td>Titel</td>
        <td><input type="text" name="titel" size="50" autocomplete=OFF value="<?=$row[titel];?>"></td>
    </tr>
</table>
<table>
    <tr>
        <td><input type="button" value="Ret sangen" onClick="valider();"></td>
 
    </tr>
</table>
</form>
Avatar billede skovenborg Nybegynder
13. juni 2003 - 23:33 #6
Du kan så enten lave en ny side med php, som der skal submittes til eller evt. den samme side, og så blot lave det samme trick som før:
<?php
if ($_POST)
{
  //Gør et eller andet
}
?>
Avatar billede erikjacobsen Ekspert
13. juni 2003 - 23:54 #7
Den bedste løsning jeg kender (skitse)


function valider(f) {
  if (f.felt ......) {
    alert("fejl");
    return false;
  }
  // flere tests
  return true;
}

og så

  <form ... onsubmit="return valider(this);">

Den er bedre end det der er vist her.
Avatar billede summersun Nybegynder
15. juni 2003 - 01:21 #8
<form method="post">

så vidt jeg ved så kan du også ændre det til

<form method="get">

så skulle det virke
Avatar billede martinbk Nybegynder
15. juni 2003 - 01:25 #9
hvad skulle det ændre at bruge get som method ?
Avatar billede summersun Nybegynder
15. juni 2003 - 01:33 #10
måden du sender dataen på :) prøv nu lige.. tager kun 2 sec.. :)
Avatar billede martinbk Nybegynder
15. juni 2003 - 01:37 #11
ja ved godt det bliver sendt via adresse linien.. men hvad skulle det så hjælpe ?
Avatar billede martinbk Nybegynder
16. juni 2003 - 05:28 #12
fandt selv min egen løsning, skriv hvis i vil se den :)
Avatar billede skovenborg Nybegynder
16. juni 2003 - 13:30 #13
ja, for andres skyld ville det nok være den bedste løsning :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester