Avatar billede netrotten88 Nybegynder
05. december 2005 - 02:06 Der er 16 kommentarer og
1 løsning

Opdater en <SELECT> i JAVA ud fra en MySQL database

Hej

Jeg har en chat kørne på min hjemmeside og så har jeg lavet sådan at folk også kan skrive hemmeligt til hinanden ved at vælge det brugernavn på en <SELECT> som man vil skrive hemmeligt til men så kommer mit problem når der kommer nye bruger ind på chatten hvordan opdater jeg så min <SELECT> automatisk ved hjælp af java hvor den skal hente datarene fra en MySQL database hvordan for jeg den til det ?

Jens
Avatar billede roenving Novice
06. december 2005 - 12:54 #1
Det kan ikke gøres uden at du sender noget fra brugerens browser til din server, og den ved jo ikke noget om, at der er kommet en ny bruger !-)

-- den slags gøres som regel ved periodisk at spørge serveren om der er ændringer !o]

PS. Java er en ret uheldig forkortelse for javascript, da de to ting stort set intet har med hinanden at gøre ...
Avatar billede netrotten88 Nybegynder
06. december 2005 - 20:08 #2
Okay jeg forklare det måske heller ikke så godt
Det jeg vil have er 2 iframe hvor den er der en <SELECT> men listen over bruger og den anden iframe skal skal opdater hele tide og hente data ud fra MySQL det jeg så vil have lavet som jeg ikke kan finde ud af :S det er hvordan jeg laver en javascript som sender mine data fra den iframe som henter mine data over i min iframe hvor jeg har min <SELECT> box

Jeg håber at i forstår mig nu ;)

PS. så lærte jeg noget nyt i dag at JAVA ikke er javascript :D
Avatar billede netrotten88 Nybegynder
06. december 2005 - 20:10 #3
Okay jeg forklare det måske heller ikke så godt
Det jeg vil have er 2 iframe hvor den ene er der en <SELECT> men listen over bruger og den anden iframe skal opdater hele tide og hente data ud fra MySQL det jeg så vil have lavet som jeg ikke kan finde ud af :S det er hvordan jeg laver en javascript som sender mine data fra den ene iframe som henter mine data over i min anden iframe hvor jeg har min <SELECT> box

Jeg håber at i forstår mig nu ;)

PS. så lærte jeg noget nyt i dag at JAVA ikke er javascript :D
Avatar billede roenving Novice
07. december 2005 - 09:26 #4
Du kan finde et eksempel på at læse indholdet af en tekst-fil fra en iframe til en select i denne tråd: http://www.eksperten.dk/spm/496122 !-)
Avatar billede netrotten88 Nybegynder
07. december 2005 - 10:51 #5
Jeg har meget svært ved at se hvordan jeg skal kunne bruge den her kode

<script language="javascript" type="text/javascript">
function soeg(f){
  var s = f.soegMail.value;
  if(!s)return;
  var x = window.adresser.document.body.innerHTML.replace(/<\/?pre>/ig,"").toLowerCase();
  var y = x.split(",");
  var z = new Array();
  for(i=0;y.length>i;i++)if(y[i].indexOf(s)>-1)z[z.length]=y[i].replace(/\s/g,"");
  if(z.length==0)return;
  sel = f.minSelect;
  sel.length = 0;
  for(i=0;z.length>i;i++){
    newOpt = document.createElement('OPTION');
    sel.appendChild(newOpt);
    newOpt.text = z[i];
    newOpt.value = z[i];
  }
  }

</script>
</head>
<body>
<br>
<form id="minForm" name="minForm" onsubmit="return adresse(this);">
            <select name="minSelect" id="minSelect" multiple="multiple" size="4">
</select><br>
Søg navn: <input id="soegMail" name="soegMail" type="text" value="" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">&nbsp;
<button onclick="soeg(this.form);return false;">Søg</button><br>
<br>
<input type="submit" value="Send">
<br>
</form>
<iframe src="adresser.txt" id="adresser" name="adresser"></iframe>

Jeg skal bruge en kode som sender mine data fra den iframe som henter mine data over i den iframe hvor min <SELECT> ligger

iframe1 henter alle de bruger som er i min MySQL og sender den vider til min iframe2 hvor min <SELECT> er og så opdater iframe1 fx. ved vært 3 sek
Avatar billede netrotten88 Nybegynder
07. december 2005 - 10:57 #6
Jeg har meget svært ved at se hvordan jeg skal kunne bruge den her kode

___________________________________________________________________________
<script language="javascript" type="text/javascript">
function soeg(f){
  var s = f.soegMail.value;
  if(!s)return;
  var x = window.adresser.document.body.innerHTML.replace(/<\/?pre>/ig,"").toLowerCase();
  var y = x.split(",");
  var z = new Array();
  for(i=0;y.length>i;i++)if(y[i].indexOf(s)>-1)z[z.length]=y[i].replace(/\s/g,"");
  if(z.length==0)return;
  sel = f.minSelect;
  sel.length = 0;
  for(i=0;z.length>i;i++){
    newOpt = document.createElement('OPTION');
    sel.appendChild(newOpt);
    newOpt.text = z[i];
    newOpt.value = z[i];
  }
  }

</script>
</head>
<body>
<br>
<form id="minForm" name="minForm" onsubmit="return adresse(this);">
            <select name="minSelect" id="minSelect" multiple="multiple" size="4">
</select><br>
Søg navn: <input id="soegMail" name="soegMail" type="text" value="" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">&nbsp;
<button onclick="soeg(this.form);return false;">Søg</button><br>
<br>
<input type="submit" value="Send">
<br>
</form>
<iframe src="adresser.txt" id="adresser" name="adresser"></iframe>
_____________________________________________________________________________

Jeg skal bruge en kode som sender mine data fra den iframe som henter mine data over i den iframe hvor min <SELECT> ligger

iframe1 henter alle de bruger som er i min MySQL og sender den vider til min iframe2 ved hjæpl af javascript og så opdater iframe1 fx. ved vært 3 sek for at se om der er kommet nye bruger

iframe2 modtager de data som min iframe1 sender til den og sætter det ind i min <SELECT> ved hjæpl af en javascript

Hvordan kan jeg lave det ?
Avatar billede roenving Novice
07. december 2005 - 11:09 #7
Med forklaring på funktionen:

  //Hent indholdet fra framen adresser (da det her er en text-fil fjernes de automatiske pre-tags !-)
  var x = window.adresser.document.body.innerHTML.replace(/<\/?pre>/ig,"").toLowerCase();
  //Indholdet er en liste med kommaseparerede værdier
  var y = x.split(",");
  var z = y;//Indsat new Array();
  /* Her laves en søgning, som var indholdet i det refererede spørgsmål
  for(i=0;y.length>i;i++)if(y[i].indexOf(s)>-1)z[z.length]=y[i].replace(/\s/g,"");
  -- udkommentering slut */
  if(z.length==0)return;
  sel = f.minSelect;
  sel.length = 0;
  //Her lægges alle værdierne ind som options i select-boksen !-)
  for(i=0;z.length>i;i++){
    newOpt = document.createElement('OPTION');
    sel.appendChild(newOpt);
    newOpt.text = z[i];
    newOpt.value = z[i];
  }

-- hvis du vil lave det samme inde fra en php-fil skal du stort set bare kopiere det ovenstående, og rette:

-- hent data fra et element og ikke fra en iframe
-- lav data til et array (z)
-- adresser parent.FORMNAVN(.SELECTNAVN) i stedet for de brugte
Avatar billede netrotten88 Nybegynder
07. december 2005 - 11:29 #8
Fil 1
<select name="til" size="1">
<option value="alle">Send til alle</option>
<option value="Ole">Ole <- sat ind af mit javascript</option>
<option value="Hugo">Hugo <- sat ind af mit javascript</option>
</select>
Fil 1 slut

Fil 2
<?
$result = mysql_query("select username, id from users where onlinechat != '0' ORDER by username ");
while ($row = mysql_fetch_array($result)) {
print "<option value=\"$row[username]\">$row[username]</option>";
}
?>
<meta http-equiv="refresh" content="3;url=load.php">
Fil 2 slut

Men hvor vil du så sætte der her ind og hvordan :S

<script language="javascript" type="text/javascript">
function soeg(f){
  var s = f.soegMail.value;
  if(!s)return;
  var x = window.adresser.document.body.innerHTML.replace(/<\/?pre>/ig,"").toLowerCase();
  var y = x.split(",");
  var z = new Array();
  for(i=0;y.length>i;i++)if(y[i].indexOf(s)>-1)z[z.length]=y[i].replace(/\s/g,"");
  if(z.length==0)return;
  sel = f.minSelect;
  sel.length = 0;
  for(i=0;z.length>i;i++){
    newOpt = document.createElement('OPTION');
    sel.appendChild(newOpt);
    newOpt.text = z[i];
    newOpt.value = z[i];
  }
  }

</script>
Avatar billede roenving Novice
07. december 2005 - 11:38 #9
F.eks. fil2 sådan:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>liste</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
window.onload = function(){
  var navne = document.getElementById("listen").innerHTML.split(",");
  var sel = parent.FORMNAVN.til;
  for(i=0;navne.length>i-1;i++){
    sel.options[sel.length] = new Option(navne[i]
  }
}
</script>
</head>
<body>
<div id="listen">

<?
$result = mysql_query("select username, id from users where onlinechat != '0' ORDER by username ");
while ($row = mysql_fetch_array($result)) {
print "$row[username],";
}
?>

</div>
</body>
</html>
Avatar billede roenving Novice
07. december 2005 - 11:39 #10
Uff, en tavetosse:

  for(i=0;navne.length>i-1;i++){
    sel.options[sel.length] = new Option(navne[i]);
  }
Avatar billede netrotten88 Nybegynder
07. december 2005 - 12:32 #11
Nu har jeg prøvet det og den melder fejl ved (var sel = parent.FORMNAVN.til;)

Men jeg forstår ikke hvordan du vil sætte det op for jeg skal jo ikke søge efter det navn jeg vil have ind det skal kommer ind i min <SELECT> automatisk når fil 2 opdater

nu er jeg ved at være maget forvirret men 1000 tak for hjælpen ind til vider
Avatar billede netrotten88 Nybegynder
07. december 2005 - 14:21 #12
Så er jeg vågnet op he he og jeg har fået det til at køre nu skal jeg bare have det i på min chat du skal have 1000 tak for hjælpen send et svar og du for point
Avatar billede netrotten88 Nybegynder
07. december 2005 - 14:39 #13
En lille bitte ting hvordan for jeg den til at slette den gamle liste når jeg opdater for som det er nu så blive listen bare længer og længer fordi den ikke slette de gamle <option>
Avatar billede roenving Novice
08. december 2005 - 00:55 #14
Tilføj en linje efter din definition af sel-variablen:

  var sel = parent.FORMNAVN.til;
  sel.length = 1;
Avatar billede roenving Novice
08. december 2005 - 00:55 #15
-- og velbekomme '-)
Avatar billede roenving Novice
08. december 2005 - 14:17 #16
Tak for point ;~}
Avatar billede netrotten88 Nybegynder
08. december 2005 - 16:56 #17
Det var så lidt og 1000 gange tak for hjælpen
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