Avatar billede wolstrup Nybegynder
05. maj 2006 - 10:16 Der er 7 kommentarer og
1 løsning

Problemer med form tjek

Hej

Når jeg submitter har jeg noget javascript som tjekker på nogle enkelte felter. Men når brugernavnet eksistere i forvejen vil jeg ikke have den skal tjekke op på felterne, men hvordan undgår man formtjek når "mysql_num_rows($resultat) == 1"?

På forhånd tak.

Script:

<?
include 'db.php';

if($_POST['new'] != ""){

$resultat = mysql_query("select * from users where name = '$_POST[name]'");
if(mysql_num_rows($resultat) == 1){

echo 'hej';

}else{

$name        = $_POST[name];
$email        = $_POST[email];
$adr        = $_POST[adr];
$phone        = $_POST[phone];
$zip        = $_POST[zip];
$type        = $_POST[type];

$pass1 = rand(10, 99);
$pass2 = rand(10, 99);
$pass3 = 'kode';

$password = "$pass1$pass3$pass2";

mysql_query("UPDATE text SET text = '$_POST[text]' WHERE id = '1'")or die(mysql_error());

mysql_query("INSERT INTO users (id, password, name, email, adr, phone, zip, city, type) VALUES ('', '$password', '$name', '$mail', '$adr', '$phone', '$zip', '$city', '$type')")or die(mysql_error());

$newid = mysql_insert_id();

echo "<script language='JavaScript'>window.open('users_popup.php?id=$newid');</script>";
echo  "<script>alert('Bruger er nu oprettet');</script>";
}
}
?>

<script>
function formCheck() {
    if (document.form.name.value == "") {
      alert("Brugernavn er ikke udfyldt");
      document.form.name.focus();
      return false
    }
      if (document.form.mail.value == "") {
      alert("E-mail er ikke udfyldt");
      document.form.mail.focus();
      return false;
    }
    if (document.form.mail.value.indexOf('@') == '-1' ||
        document.form.mail.value.indexOf('.') == '-1') {
        alert("Check venligst din e-mail adresse");
        document.form.mail.select();
        document.form.mail.focus();
        return false
    }
}     
 
</script>

<table border="0" cellpadding="0" cellspacing="0">
<form name="form" method="POST" action="" onsubmit="return formCheck();">
    <tr>
        <td width="150">Brugernavn:</td>
        <td><input type="text" name="name" size="20">*</td>
    </tr>
    <tr>
        <td>E-mail:</td>
        <td><input type="text" name="mail" size="20">*</td>
    </tr>
    <tr>
        <td>Adresse:</td>
        <td><input type="text" name="adr" size="20"></td>
    </tr>
    <tr>
        <td>Postnummer:</td>
        <td><input type="text" name="zip" size="20"></td>
    </tr>
    <tr>
        <td>By:</td>
        <td><input type="text" name="city" size="20"></td>
    </tr>
    <tr>
        <td>Telefon:</td>
        <td><input type="text" name="phone" size="20"></td>
    </tr>
    <tr>
        <td>Type:</td>
        <td><select size="1" name="type">
        <option>A</option>
        <option>B</option>
        <option>C</option>
        </select>*</td>
    </tr>
        <?
        $res = mysql_query("select text from dong_text where id = '1'");
        while ($text = mysql_fetch_assoc($res)) {
        ?>
    <tr>
        <td valign="top">Standard tekst:</td>
        <td><textarea name="text" cols="50" rows="10"><?=$text[text];}?></textarea></td>
    </tr>
    <tr>
        <td colspan="2"><br>Felter markeret med * skal udfyldes</td>
    </tr>
    <tr>
        <td><br><input class="input" type="submit" value="Opret" name="new"></td>
    </tr>

</form>
</table>
Avatar billede webstuff Nybegynder
05. maj 2006 - 11:18 #1
if(mysql_num_rows($resultat) != 1){
//Form tjek
}
Avatar billede wolstrup Nybegynder
05. maj 2006 - 11:43 #2
Har prøvet den, det funker ikke, den tjekker stadig op på den.
Avatar billede webstuff Nybegynder
05. maj 2006 - 11:45 #3
Så er det fordi at resultatet ikke er == 1 :-)
Avatar billede webstuff Nybegynder
05. maj 2006 - 11:50 #4
prøv med
$antal = mysql_num_rows($resultat);
?>
<script type="text/javascript">
alert("<?=$antal;?>");
</script>
<?
...
Avatar billede webstuff Nybegynder
05. maj 2006 - 11:57 #5
altså for at se hvad $antal er - så kan du tjekke om det virker hvis den er == 1
Avatar billede wolstrup Nybegynder
05. maj 2006 - 12:03 #6
Den kommer med 1 når når brugerne findes og 0 hvis den ikke findes... Har prøvet at sætte ifsætningen ind som nedenunder. Resultatet bliver at den ikke tjekker op på felterne ligemget om brugeren findes eller ej?

<?
include 'db/db.php';

if($_POST['new'] != ""){

$resultat = mysql_query("select * from users where name = '$_POST[name]'");

if(mysql_num_rows($resultat) != 1){
?>
<script>
function formCheck() {
    if (document.form.name.value == "") {
      alert("Brugernavn er ikke udfyldt");
      document.form.name.focus();
      return false
    }
      if (document.form.mail.value == "") {
      alert("E-mail er ikke udfyldt");
      document.form.mail.focus();
      return false;
    }
    if (document.form.mail.value.indexOf('@') == '-1' ||
        document.form.mail.value.indexOf('.') == '-1') {
        alert("Check venligst din e-mail adresse");
        document.form.mail.select();
        document.form.mail.focus();
        return false
    }
}     
 
</script>
<?
}
if(mysql_num_rows($resultat) == 1){
while ($id = mysql_fetch_array($resultat)){

echo "<SCRIPT>location.href='users_edit.php?id=$id[id]';</SCRIPT>";

}
}else{.....
Avatar billede webstuff Nybegynder
06. maj 2006 - 08:19 #7
prøv lige at ændre <script> til <script type="text/javascript"> - det kunne godt gøre en forskel ;o)
Avatar billede wolstrup Nybegynder
08. maj 2006 - 10:34 #8
Den funker stadig ikke, den tjekker op på scriptet selvom mysql_num_rows($resultat) != 1
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