Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 1001
Hei!
Jeg har lest en Ajax tutorial som jeg har skrevet om litt slik at den sjekker om et brukernavn er langt nok og om det er ledig.
Nr1. Jeg har problemer med å vise æøå, det er rett tegnsetting i html dokumentet.
Nr2. Kan jeg gjøre noe med koden slik at jeg kan sjekke mange ting i en php fil? Slik at jeg også kan sjekke lengden på passordet osv uten at teksten som kommer om brukernavnet er rett kommer bort og slik at jeg slipper å opprette en .php fil for hver ting som jeg skal sjekke?


Her er .html dokumenter med formen i som jeg har:

Kode

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Easy Ajax</title>
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" src="ajax.js"></script>
</head> 
<body>
    <form method="get" action="greeting.php" id="greeting-form">
        <div>
            <label for="greeting-name">Enter your name:</label>
            <input id="greeting-name" type="text" />
            <input id="greeting-submit" type="submit" value="Greet me!" />
        </div>
        <div id="greeting"></div>
    </form>
</body>
</html>

ajax.js:

Kode

Event.observe(window, 'load', init, false);
function init(){
     $('greeting-submit').style.display = 'none';
     Event.observe('greeting-name', 'keyup', greet, false);
}
function greet(){
     var url = 'greeting.php';
     var pars = 'greeting-name='+escape($F('greeting-name'));
     var target = 'greeting';
     var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
}

greeting.php:


Kode

<?php
define( '_VALID_INDEX', 1 ); require_once("inc/config.php");
if($_GET["greeting-name"]){
$navn=htmlspecialchars($_GET['greeting-name']);
$sql=mysql_query("SELECT brukernavn FROM user WHERE brukernavn = '$navn'");
if(strlen($navn) < 4){
echo "Brukernavnet må være større en 4 tegn";
}elseif(mysql_num_rows($sql) > 0){
echo "Brukernavnet ".$navn." er opptatt, vennligst prøv et annet navn";
}else{
echo "Rett";
}
  }
?>

Jeg bruker også en js fil som heter prototype.js som dere finner her.

På forhånd takk!
Trådstarter
Hm.. Ingen som kan hjelpe meg med dette?
improbable
Gusto's Avatar
DonorAdministrator
Det har bare gått en time, Olav. Vær litt tålmodig. Dette er ikke Instant Messaging.
I like turtles
Skyfex's Avatar
#1: Sjekk at charset passer i HTML meta tagen, text editoren, webserveren, PHP scriptet (der kan du forandre hvilket charset webserveren rapporterer), texteditoren og databasen (og eventuelle programmer du bruker til databasen). For å være på den sikre siden kan du bruke html entities. Det burde fungere uansett.

#2: Det er nok ikke så mange her som har så god erfaring med prototype. Personlig foretrekker jeg jQuery, selv om ajax utvidelsene ikke er ute enda.
improbable
Gusto's Avatar
DonorAdministrator
Jeg synes Prototype er et veldig sterkt bibliotek og fungerer godt. Prototype er som navnet tilsier en baseklasse som i seg selv ikke direkte gir deg så veldig mye som mange andre AJAX-biliotek gjør, men så er brorparten av disse basert på Prototype.
Trådstarter
Takk for alle svar! Har funnet ut av spr. nr2, men sliter enda med ÆØÅ. Alt av charset er rett og tingene funker når jeg henter helt vanlig fra mySQL, men ikke når jeg henter det fra en php fil ved hjelp av Ajax.

Det er enda en ting jeg lurer på. For å sjekke om noe skjer på siden så bruker jeg:
Event.observe(window, 'load', init, false);
Når noe skjer så blir functionen init kjørt, den ser slik ut:
function init(){
Event.observe('user_antibot', 'keyup', user_antibot, false);
Event.observe('user_reg', 'keyup', user_reg, false);
Event.observe('user_pass1', 'keyup', user_pass, false);
Event.observe('user_pass2', 'keyup', user_pass, false);
Event.observe('user_email', 'keyup', user_email, false);
}
Alltså, hvis jeg skriver noe i text feltet user_antibot så blir funksjonen user_antibot hentet opp osv.. Men hvordan kan jeg få det samme til å skje med knapper (button)?

Takk!
▼ ... noen uker senere ... ▼
har du testet:
Event.observe('user_antibot', 'onclick', user_antibot, false);
`?