Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-27 19:50:18 - Lars Lantz, i forum javascript/dhtml, Tråden har 13 Kommentarer och lästs av 3390 personer

Hej!

Jag vill att när jag klickar på rullgardinslistan fylla denna med data från MySQL med hjälp av AJAX.
Jag har kommit så här långt:

Här är rullgardinslista.php

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Rullgardinslista</title>
<link rel="stylesheet" type="text/css" href="rullgardinslista_mall.css">
</head>

<body>
<script type="text/javascript">

function destination() {
var xmlhttp;

if (window.XMLHttpRequest) { 
  xmlhttp=new XMLHttpRequest(); }
else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } // kod för IE6, IE5

xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    { document.getElementById("destination_id").innerHTML=xmlhttp.responseText;}
}

xmlhttp.open("GET","rullgardinslista_data.php",true);
xmlhttp.send();
}
</script>


<?php

echo'
					<select name="destination_name"
							id="destination_id"
			    	   	   	class="select_resmal"
							tabindex="-1"
							onclick="destination()"> 

    									<option>Destination</option>
    									<option></option>';
										
						
            
						echo'   
					</select>
';
?>
</body>
</html>


Här är rullgardinslista_data.php som hämtar data från databasen
<?php
require "config.php";
									$Query_destination = mysql_query("SELECT * FROM tbldestinationer
																		 ORDER BY destination
																	   ")
															or exit( mysql_error());

                        				while ($radd=mysql_fetch_assoc($Query_destination)){

            			echo' 		<option>'.$radd['destination'].'
									</option>';

                        				}
            
?>


Här är rullgardinslista_mall.css

.select_resmal {border: 1px solid;
		 border-color: #c9d3d6;
		 padding: 1px;
		 background-color: #ffffff;
		 font-size: 11px;
		 font-weight: normal;
		 color: #000000;
		 width: 136px;
		 height: 19px;
        }


...och config.php


<?php
$server = "192.168.0.10";
$user = "***";
$password = "***";
$base = "***";
$version = "***";
    $conn = mysql_connect($server, $user, $password) or die("Kunde inte ansluta4");
	mysql_select_db($base);
	mysql_set_charset('latin1',$conn);
	setlocale(LC_MONETARY, "se_SE");
?>


Det som händer när jag klickar på pilen i rullgardinslistan är att den hämtar de 2 första posterna i databasen.
När jag sen väljer en av dessa så blir det alltid den första som blir vald.
Klickar jag sen på pilen en gång till så kommer alla poster i databasen fram som de ska. Men det blir ändå den första som blir vald oavsett vilken jag väljer.

Finns det någon som har tid att kika på detta?

Tack på förhand!
Lars Lantz


Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-28 08:28:34 - Tomas Granlund

Varje gång nån klickar på dropdownen (öppnar, stänger, väljer ett alternativ etc.) så anropas destinationer(), och innehållet i listan ändras. Du behöver nog nån slags mekanism för att förhindra att innehållet byts ut när det väl har laddats första gången. Du bör nog också använda en annan event än just onclick().

Behöver du ens ladda innehållet mha ajax? Kan du inte lika gärna skicka med alla destinationer direkt när sidan laddas?

Hursomhelst, här är ett exempel på hur du skulle kunna göra.


Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-28 08:31:24 - Pelle Johansson

Hej Lars, mycket bra utförlig presentation av ditt problem och utmaning. Jag hoppas att någon kan hjälpa dig fram här. Jag kan inte detta, men spontant brukar det vara så att om något inte blir valt så har man råkat skriva över valet igen (dvs laddat om listan men glömt att kontrollera om någon var vald precis före). Vet inte om det kan ge dig någon hint i detta scenario..

//Pelle - pellesoft


Svara

Sv:Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-28 18:01:50 - Lars Lantz

Hej Tomas!

Idag har jag det så att alla destinationer skickas när sidan laddas. Det är ett problem eftersom det kan komma att ändras under tiden man sitter med sidan. Listan måste vara aktuell.
Man skulle kanske kunna ha en knapp som hämtar listan på nytt.

/Lars


Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-28 20:24:24 - Pelle Johansson

Hej, att hålla listan aktuell är nog smart att ha en "uppdatera" knapp så användaren kan få senaste version. Om man måste ha den online hela tiden kanske en annan lösning skulle implementeras så man inte på något sätt kan missuppfatta att det uppdaterats med nytt material?


Svara

Sv:Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-29 20:36:38 - Lars Lantz

Så här har jag gjort nu.
Jag låter sidan ladda in "selecten" med data.
Klickar man på uppdatera-knappen så hämtar den datat igen.
Fungerar bra. Men: Å, Ä och Ö blir konstiga tecken när man laddar in med uppdatera-knappen.
Varför blir det så?

/Lars

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Rullgardinslista</title>
<link rel="stylesheet" type="text/css" href="rullgardinslista_mall.css">
</head>

<body>
<script type="text/javascript">

function destination() {


var xmlhttp;

if (window.XMLHttpRequest) { 
  xmlhttp=new XMLHttpRequest(); }
else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } // kod för IE6, IE5

xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    { document.getElementById("destination_id").innerHTML=xmlhttp.responseText;}
}

xmlhttp.open("GET","rullgardinslista_data.php",true);
xmlhttp.send();
}
</script>


<?php

echo'
					<select name="destination_id"
							id="destination_id"
			    	   	   	class="select_resmal"
							tabindex="-1" 
							onchange="document.getElementById(\'resmal1\').value=this.options[this.selectedIndex].value;
									  document.getElementById(\'destination_id\').value=\'Destination\'">

    									<option>Destination</option>
    									<option></option>';
									
									require "config.php";

									$Query_destination = mysql_query("SELECT * FROM tbldestinationer
																		 ORDER BY destination
																	   ")
															or exit( mysql_error());

                        				while ($radd=mysql_fetch_assoc($Query_destination)){

            			echo' 		<option>'.$radd['destination'].'
									</option>';

                        				}
            
						echo'   
					</select>

					<input type="text"
						   name="resmal1"
						   id="resmal1"
						   tabindex="1">
					<button type="button" onclick="destination()">Uppdatera</button>
';
?>
</body>
</html>



Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-29 21:22:26 - Lars Lantz

Hej igen!

Jag löste teckenproblemet själv genom att ändra allt till UTF-8.

/Lars


Svara

Sv:Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-29 22:21:30 - Pelle Johansson

Perfekt!


Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-30 20:30:41 - Lars Lantz

Hej!

Helt perfekt blev det faktiskt inte. Jag måste skriva &aring; t.ex. i alla echo.
Om man sen har t.ex.

document.getElementById(\'fel_bestallningsdatum\').value=\'Skriv enl. ååååmmdd\';

så blir det konstiga tecken på åååå. Ändrar man det till:
document.getElementById(\'fel_bestallningsdatum\').value=\'Skriv enl. &aring;&aring;&aring;&aring;mmdd\';

så skriver den &aring;&aring;&aring;&aring;mmdd i klartext.

Borde man för det första inte slippa att skriva &aring; i alla echo?
Sen spelar det ingen roll vad jag skriver i javascriptet enligt ovan.

/Lars


Svara

Sv:Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-31 13:52:43 - Henry Rune Tk

Hej Lars!

Har du testat att lägga till meta-taggen (inom <head></head>):

<meta http-equiv="content-type" content="text/html; charset=utf-8">


Annars kan du testa öppna källfilerna i t.ex. Notepad och välj "Arkiv" > "Spara som"
- och så väljer du "UTF-8" i drop-downlistan bredvid spara knappen.


Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-31 17:01:49 - Lars Lantz

Hej!

Metataggen finns redan och jag har ändrat i databasen till utf8_swedish_ci.

Så här ser det ut:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Titel</title>
<link rel="stylesheet" type="text/css" href="mall.css">
</head>
<body>

/Lars


Svara

Sv:Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-31 18:54:38 - Henry Rune Tk

Ok,

Kan du testa öppna rullgardinslista_data.php, samt visningssidan i Notepad och välja "Spara som" + UTF-8 ?

Det har fungerat för mig vid vissa tillfällen.


Svara

Sv: Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-31 19:47:21 - Lars Lantz

Nu funkar det...

Tack för hjälpen.

/Lars


Svara

Sv:Fylla SELECT med data från MySQL med AJAX

Postades av 2014-01-31 20:11:37 - Henry Rune Tk

Toppen! :)


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 574
27 958
271 741
5 848
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies