Avatar billede grauholm Nybegynder
10. juli 2003 - 07:48 Der er 24 kommentarer og
1 løsning

Nogen der kan få dette script til at virke

Jeg har været igang med at lave en kunde oprettelses side, og jeg har tidligere fået et script hvor man kan slå postnr op i, men jeg han ikke få det til at virke med en database -
<body>
<script language="javascript" type="text/javascript">

var postby = new Array();

</script>

<?
mysql_connect("localhost","root", "160666");
mysql_select_db("todoo");
$query = mysql_query("SELECT * FROM postnr");
while($row=mysql_fetch_array($query)) {
$postnr= $row["postnr"];
$by= $row["by"];



}
?>

<form>
Postnr: <input type="text" name="postnr" value="postnr" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value==''){this.value=this.defaultValue;}else this.form.by.value=postby[this.value]">
&nbsp;&nbsp;By: <input type="text" disabled name="by">
</form>



</body>
</html>

Hvor går det galt? Det har drilet mig en del!!
Avatar billede ohmish Nybegynder
10. juli 2003 - 07:55 #1
en ting: du må ikke bruge navnet "by" i mysql.. det er reserveret.
kald det bynavn eller andet.
Avatar billede ohmish Nybegynder
10. juli 2003 - 07:57 #2
jeg kan slet ikke se hvordan dit javascript array blir fyldt:

<script language="javascript" type="text/javascript">
var postby = new Array();
</script>
Avatar billede ohmish Nybegynder
10. juli 2003 - 07:58 #3
måske er det fordi eksperten.dk ikke viser et par vigtige linier.. hmm

while($row=mysql_fetch_array($query)) {
$postnr= $row["postnr"];
$by= $row["by"];



}
?>
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:05 #4
Der mangler ikke nogen linjer - det oprindelige script jeg fik er
<script language="javascript" type="text/javascript">

var postby = new Array();

<?
database-udtræk

while $row
{
echo("postby[$row.postnr]=$row.by");
}

?>
</script>


og så i html-koden skrive:
<form>
Postnr: <input type="text" name="postnr" value="postnummer" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value==''){this.value=this.defaultValue;}else this.form.by.value=postby[this.value]">
&nbsp;&nbsp;By: <input type="text" disabled name="by">
</form>

Måske er det et bedre udgangspunkt
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:06 #5
ja! det ser bedre ud
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:07 #6
<script language="javascript" type="text/javascript">

var postby = new Array();

<?
mysql_connect("localhost","root", "160666");
mysql_select_db("todoo");
$query = mysql_query("SELECT * FROM postnr");
while($row = mysql_fetch_array($query)) {
$postnr = $row["postnr"];
$by = $row["bynavn"];
echo("postby[$row.postnr]=$row.by");
}
?>

</script>


og så i html-koden skrive:
<form>
Postnr: <input type="text" name="postnr" value="postnummer" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value==''){this.value=this.defaultValue;}else this.form.by.value=postby[this.value]">
&nbsp;&nbsp;By: <input type="text" disabled name="by">
</form>
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:08 #7
ret feltet "by" i din db-tabel til bynavn
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:10 #8
virker det? :)
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:12 #9
Tabel er rette og jeg bliver ved med at få "undefined" i by feltet
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:12 #10
det er ellers noget af en elefantprocess at hive et helt postnr kartotek ned bare for at kunne vise byens navn i et felt. kan javascript overhovedet klare alle de værdier??
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:13 #11
undefined? vis lige hele fejlen
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:15 #12
I felten hvor den skal skrive byen kommer bare undefined
Jo det er lidt meget med bynavn fra en db, men det er kun første skridt på vejen til flere oplysninger der skal hentes!!
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:15 #13
denne her: echo("postby[$row.postnr]=$row.by");

skal måske være: echo("postby[$postnr.postnr]=$by.by");
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:17 #14
eller bare:

echo("postby[$postnr]=$by");
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:18 #15
den sidste er nok den mest rigtige
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:18 #16
Kanon nu kommer der ikke nogen fejl, men heller ikke någet andet (ingen bynavn)
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:19 #17
ham der har lavet scriptet har lavet det til javascript databaseforbindelse. så det er lidt forvirrende. prøv med: echo("postby[$postnr]=$by");
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:20 #18
Nope
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:21 #19
og du har ændret "by" til "bynavn" i databasen?
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:23 #20
Jep
postnr  int(10) 
bynavn  varchar(255)
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:30 #21
ok. prøv så at udskifte echo linien i whileløkken med:

print "postby[\"".$postnr."\"] = \"".$by."\";\n";
Avatar billede grauholm Nybegynder
10. juli 2003 - 08:34 #22
Ok, det er nok de mest fortjente point jeg har givet ud til dato, tak for hjælpen, det hjalp

/Allan
Avatar billede ohmish Nybegynder
10. juli 2003 - 08:36 #23
selv tak du :)

er siden ikke meget langsom, når du henter over 2000 felter fra databasen på den måde?
Avatar billede grauholm Nybegynder
11. juli 2003 - 07:39 #24
Nej ikke endnu, men der er heller ikke 2000 felter!! Som skrevet skal det ikke bruges til at hente postnr ind, men kunder - det var bare en måde til at se hvordan det kunne lade sig gøre
Avatar billede ohmish Nybegynder
11. juli 2003 - 17:26 #25
ok. jeg prøvede lige for sjov med alle postnumre i DK fra databasen.. (ca. 1400 rækker - ialt 2800 felter). Det blev hentet ind på siden på under 1 sekund. det siger da lidt om mysql/php's hastighed. ay caramba! :)
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

IT-JOB