Avatar billede TumseMM Nybegynder
21. juli 2011 - 19:13 Der er 1 kommentar og
1 løsning

Facebox - sætninger

Hej Eksperten.dk

Har et spørgsmål omkring en facebox:

Når jeg trykker på "bruger" popper den fine facebox op på skærmen med de felter man skal bruge til at registrere sig. Nu har jeg selvfølgelig også lavet nogle errors, hvis der sker en fejl, og en succesful tekst, hvis registreringen fuldføres.

Problemet er at errorsne kommer først når man har lukket faceboxen ned, og op igen?? Så hvis man laver en error, lukker den ned, og åbner igen for faceboxen - står erroren dér??

Samtidig hvis registeringen fuldføres bliver man redirectet til en hvid side hvor der står:"Tillykke! Du er nu klar til at afslutte sætninger!" - den vil jeg gerne have at den bliver i faceboxen!!

Her er koden:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <script src="inc/jquery-1.4.4.js" type="text/javascript"></script>
  <link href="inc/facebox/src/facebox.css" media="screen" rel="stylesheet" type="text/css"/>
  <script src="inc/facebox/src/facebox.js" type="text/javascript"></script>
  <script type="text/javascript">
  $(function() {
    $('a[rel*=facebox]').facebox()
  })
  </script>
<?php
$submit= $_POST['register'];
if($submit=="Registrer")
{
    include('connect.php');
    $username = mysql_real_escape_string(strip_tags(htmlspecialchars($_POST['username'])));
    $password1 = md5($_POST['password1']); // $password1 kan aldrig blive blank,
    $pw1 = $_POST['password1'];
    $pw2 = $_POST['password2'];
    $error=0;

    if($pw1 != $pw2)
    {
        $error = "De 2 kodeord er ikke ens!";
    }
    if($pw1 == "")
    {
        $error = "Du har ikke indtastet et kodeord!";
    }
    if($username == "")
    {
        $error = "Du har ikke indtastet et brugernavn!";

    }
    $sql = "SELECT id FROM users WHERE username LIKE '".$username."'";
    // $sql = "SELECT id FROM users WHERE username='" . $username . "'";
    $rs  = mysql_query($sql);
    if($rs)
    {
        if (mysql_num_rows($rs) == 1)
        {   
            echo "Brugernavnet er optaget";
        }   
    }
    if(!$error)
    {       
        $sql="INSERT INTO `users` (`username`,`password`) VALUES ('".$username."','".$password1."')";
        mysql_query($sql) or die(mysql_error());
        echo "Tillykke! Du er nu klar til at afslutte sætninger!<br><a href='Website.php'>Tilbage</a>";       

        echo "</body></html>";    // afslutter siden html mæssigt, så den også validerer
        exit; // visser ikke resten af siden,
    }
}
?>
<div style="position:absolute";>
<form action='Website.php' method='POST'>
<table>
    <tr>
        <td>
            Brugernavn:</td>
        <td>   
            <input type='text' name='username'><br>        </td>
    </tr>
   
    <tr>
        <td>
            Password:</td>
        <td>   
            <input type='password' name='password'><br>        </td>
       
    </tr>
    <tr>
        <td>
            <input name="login" type="submit" value="Login"><br></td>

</table>

Mangler du en <a href="#register" rel="facebox"><i>bruger</i></a>?
</form>
Avatar billede olsensweb.dk Ekspert
21. juli 2011 - 20:30 #1
Hej TumseMM,
1) jeg ser du har stillet det sammen spørgsmål i http://www.eksperten.dk/spm/942587 #21 det er ikke lovligt at dobbeltposte jf brugerbetingelserne http://www.eksperten.dk/brugerbetingelser læs 2.11, få jakobdo til at ligge et svar og luk det spørgsmål.
nb: det er en uskik at begynde at påbegynde nye spørgsmål inde i et existerende spørgsmål, bland andet afh søgning på løsninger, samt når først en tråd kører kommer der sjældent nye personer til der kan bidrage, skulle du have givet jakobdo besked kunne du have lagt en referance til det nye spørgsmål som en kommentar i spørgsmålet

2) spørgsmålet er nok bedre placeret i javascript gruppen http://www.eksperten.dk/spm/Programmering/Script/JavaScript/
årsag: facebox er noget js (jquery) function, det du ønsker er at du får lavet alle dine valideringer clientside, så du bliver på siden indtil alle dine betingelser er opfyldt, og først da sender dine data til serveren (du skal dog bibeholde dine server validering som du har nu, da js kan fejle/slåes fra).
og din test for om brugernavnet er optaget skal du lave med AJAX, feks med jquery når du nu bruger det i forvejen
jquery link
http://api.jquery.com/category/ajax/
http://api.jquery.com/jQuery.ajax/
http://api.jquery.com/jQuery.get/
eller
http://api.jquery.com/jQuery.post/
Avatar billede TumseMM Nybegynder
21. juli 2011 - 21:39 #2
Aha det vidste jeg desværre ikke ronols. Jeg skal straks slette mit spørgsmål.
Tak for tippet!
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