Avatar billede chrisson Nybegynder
28. september 2006 - 21:23 Der er 45 kommentarer

Kan ikke få InnerHTML til at virke?

Hej,

Jeg har prøvet at få innerHTML, men den refresher alle billeder alligevældet.

Her er koden:
<?php
session_start();
include("include/KaConnect.php");
?>

<?php
if ($_GET[move] == "yes") {
$time=time();
mysql_query("UPDATE brugeroplysninger SET felt='$_GET[felt]', lfelt='$_GET[l]', tfelt='$_GET[t]' WHERE brugernavn='$_SESSION[Brugernavn]'") or die(mysql_error());
}
?>
<?
if(isset($_SESSION[Brugernavn])) {
?>
<script type="text/javascript">
function ryk(l,t,felt){
    you = document.getElementById("youId");
    you.style.top=t+"px";
    you.style.left=l+"px";
    window.rykkefelt.location.href = "chatten.php?move=yes&t="+t+"&l="+l+"&felt="+felt;
}
</script>
<iframe name="rykkefelt" width="0" height="0"></iframe>
<link rel=stylesheet href='/chat/grafik/design/css/chat.css' type=text/css>
<body onload='loadet()'>
<div id='chat'></div>
<script>
document.getElementById('chat').innerHTML = document.getElementById('chat').innerHTML+"<?php
$felt_id = 1;
for ($row = 0; $row < 7; $row++) {
  $top_px = $row*50+2;

if($row % 2){
$colantal = 19;
$leftplus=13;
} else {
$colantal = 19;
$leftplus=4;
}

for ($col = 0; $col < $colantal; $col++) {
$left_px = $col*30-60;
$left_px = $left_px + $leftplus - 40;
$z = 170 + $felt_id - 1;

print ("<div id='rum' style='POSITION: absolute;top:0px;left:0px;'><img src='/chat/grafik/bg/admin.jpg' alt=''></div>");
print ("<div id='felt".$felt_id."' style='POSITION: absolute;top:".$top_px."px;left:".$left_px."px;'>");
print ("<a onclick='ryk(".$left_px.",".$top_px.",".$felt_id.");'>");
print ("<img border='0' src='/chat/grafik/indbygget/bg.gif' width='40' height='60' alt='' id='feltet".$felt_id."'></a></div>");
  $felt_id++;
  }
}
$res9 = mysql_query("SELECT rumid, tjektid, felt, Rang, lfelt, tfelt, toej, haar, figur, tilb FROM brugeroplysninger WHERE brugernavn = '$_SESSION[Brugernavn]'");
$mig = mysql_fetch_array($res9);
print "</body>";
$lfelt = $mig[lfelt];
$tfelt = $mig[tfelt];
print "<div id='youId' align='center' style='POSITION:absolute;z-index:2;left:".$lfelt."px;top:".$tfelt."px;z-index:2;'><span><img class=float src=/chat/grafik/figur/$mig[figur]><img class=float src=/chat/grafik/toj/$mig[toej]><img class=float src=/chat/grafik/tilb/$mig[tilb] style='z-index: 5;'></a><img class=float src=/chat/grafik/har/$mig[haar] style='z-index: 4;'></a></span><br><br><br><br><br><br><font size='2' face='Trebuchet' MS color='black'><center>$mig[brugernavn]</center></div>";
$time=time();
$kl = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn != '$_SESSION[Brugernavn]' AND $time-tjektid < 1200 ORDER BY felt desc");
WHILE($row1 = mysql_fetch_array($kl)){ 
echo "<div id='$row1[brugernavn]' align='center' style='POSITION: absolute;' style='width:200px; height:200px; position:absolute; left:$row1[lfelt]px; top:$row1[tfelt]px; z-index:1;'><img src='$row1[figur]' title='$row1[brugernavn]' alt='$row1[brugernavn]>'><br /><font size='2' face='Trebuchet MS' color='white'>$row1[brugernavn]</div><br />";
}
?>";

function loadet(){
setTimeout("location.reload(true)",1000);
}
</script>
<?
}
?>

Har taget udgang herfra:
http://s2a.dk/articles_read.asp?id=267
Avatar billede chrisson Nybegynder
29. september 2006 - 19:18 #1
Ingen som kan løse gåden?
Avatar billede jakobdo Ekspert
30. september 2006 - 21:00 #2
Du kunne evt overveje at bruge AJAX.
Så burde kunne laves uden blink.
Avatar billede chrisson Nybegynder
30. september 2006 - 21:50 #3
Hvordan laver jeg det i AJAX? og hvor er der nogle guides?
Avatar billede jakobdo Ekspert
30. september 2006 - 21:55 #4
Prøv f.eks. denne: http://www.w3schools.com/ajax/default.asp
Eller søg google.dk efter ajax tutorial
Avatar billede chrisson Nybegynder
30. september 2006 - 21:57 #5
Kan du vise noget af, hvordan det gøres?
Avatar billede jakobdo Ekspert
30. september 2006 - 22:01 #6
Nej tak! :o)
Avatar billede chrisson Nybegynder
30. september 2006 - 22:04 #7
Heh... Er det et stort arbejde?
Avatar billede jakobdo Ekspert
30. september 2006 - 22:12 #8
Både og!
Jeg synes du skal prøve at lege lidt med eksemplet fra det link du fik før.
Når du så har fået det vil at præsentere data, så kan vi kigge på det igen.
Avatar billede chrisson Nybegynder
30. september 2006 - 22:14 #9
Ok, i denne post?
Avatar billede jakobdo Ekspert
30. september 2006 - 22:22 #10
Jaja, kom du bare igang med at kode! :o)
Avatar billede chrisson Nybegynder
30. september 2006 - 22:54 #11
Hvordan omskriver man denne asp kode om til php?
Avatar billede chrisson Nybegynder
30. september 2006 - 22:54 #12
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & request.querystring("q")

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
rs.Open sql, conn

response.write("<table>")
do until rs.EOF
for each x in rs.Fields
response.write("<tr><td><b>" & x.name & "</b></td>")
response.write("<td>" & x.value & "</td></tr>")
next
rs.MoveNext
loop

response.write("</table>")
Avatar billede chrisson Nybegynder
30. september 2006 - 22:55 #13
response.write
er
print, mere kan jeg ikke rigtigt se mening i...
Avatar billede jakobdo Ekspert
30. september 2006 - 23:03 #14
NOget i stil med:

<?php
//Forbind til MYSQL
$queryString = mysql_real_escape_string($_GET['q']);
$sql = "SELECT * FROM CUSTOMERS WHERE CUSTOMERID='".$queryString."'";
$query = mysql_query($sql) or die(mysql_error());

echo "<table>";

while($row = mysql_fetch_assoc($query))
{
    echo "<tr><td><b>" . $row['name'] . "</b></td>")
    echo "<td>" . $row['value'] . "</td></tr>")
}

echo "</table>";
?>
Avatar billede chrisson Nybegynder
30. september 2006 - 23:12 #15
http://www.kasketten.dk/hent.htm legede lidt med den første navne søg, og lavede en while ved den der A[] så nu er der over fed brugersøg :D
Avatar billede jakobdo Ekspert
30. september 2006 - 23:26 #16
Nice! :o)
Avatar billede chrisson Nybegynder
30. september 2006 - 23:28 #17
Måtte rette en del i det, men det virker:D
<?php
include("chat/user/include/KaConnect.php");
$queryString = mysql_real_escape_string($_GET['q']);
$sql = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn='$queryString'");


echo "<table>";
while($row = mysql_fetch_assoc($sql))
{
    echo "<tr><td><b>" . $row['brugernavn'] . "</b></td>";
    echo "<td>" . $row['penge'] . "</td></tr>";
}

echo "</table>";
?>

AJAX STYRE :D
Men ingen Æ - Ø - Å :S
Avatar billede jakobdo Ekspert
30. september 2006 - 23:41 #18
Hvad hvis du gemmer æøå som æ = &aelig; og ø = &oslash; og å = &aring; i din database?
Avatar billede chrisson Nybegynder
30. september 2006 - 23:42 #19
bare lidt træls, at skulle konvertere det ved opret og det...
Avatar billede chrisson Nybegynder
30. september 2006 - 23:44 #20
Begynder at se mening i det der ajax, faktisk rimeligt nemt :D er ved at lave min garderobe fra javascript om til Ajax... Firefox kunne nemlig ikke gemme deres tøj
Avatar billede jakobdo Ekspert
30. september 2006 - 23:47 #21
Du kan også når du trækker data ud fra databasen, så bruge htmlentities()
Avatar billede chrisson Nybegynder
01. oktober 2006 - 00:07 #22
Har fået fixet en ny garderobe, men når man vælger tøj, så kommer det frem, men så når jeg vælger hår, så forsvinder tøjer, og håret kommer på!
Kan man gøre sådan at det gemmer det andet tøj?
Avatar billede jakobdo Ekspert
01. oktober 2006 - 00:14 #23
Det kommer jo an på hvordan du har lavet din kode!
Avatar billede chrisson Nybegynder
01. oktober 2006 - 00:20 #24
Den der viser tøjet:
<html>
<head>
<script src="selectcustomer.js"></script>
</head><body><form>
Vælg bruger:
<select name="customers" onchange="showCustomer(this.value)">
<?
include("KaConnect.php");
$res_info = mysql_query("select * from garderobe");
WHILE($row_info = mysql_fetch_array($res_info)){
print "<option value='$row_info[toej]'>$row_info[toej]</option>";
}
?>
</select>
<select name="customers" onchange="showCustomer2(this.value)">
<?

$res_info2 = mysql_query("select * from garderobe");
WHILE($row_info2 = mysql_fetch_array($res_info2)){
print "<option value='$row_info2[haar]'>$row_info[haar]</option>";
}
?>
</select>
<select name="customers" onchange="showCustomer3(this.value)">
<?

$res_info3 = mysql_query("select * from garderobe");
WHILE($row_info3 = mysql_fetch_array($res_info3)){
print "<option value='$row_info3[tilb]'>$row_info[tilb]</option>";
}
?>
</select>


</form><p>
<div id="txtHint"><b>Brugeren vil blive vist her:</b></div>
</p></body>
</html>
Det som henter tøjet:
<?php
include("KaConnect.php");
$que1 = mysql_query("SELECT * FROM brugeroplysninger");
$row_mig = mysql_fetch_array($que1);
$queryString = mysql_real_escape_string($_GET['q']);
$sql = mysql_query("SELECT * FROM garderobe WHERE toej='$queryString'");
$row = mysql_fetch_assoc($sql);

echo "<table>";


$queryString2 = mysql_real_escape_string($_GET['l']);
$que2 = mysql_query("SELECT * FROM garderobe WHERE haar='$queryString2'");
$row_har = mysql_fetch_array($que2);
$queryString3 = mysql_real_escape_string($_GET['i']);
$que3 = mysql_query("SELECT * FROM garderobe WHERE tilb='$queryString3'");
$row_tilb = mysql_fetch_array($que3);
?>

    <span style="position:absolute">
    <img src="/chat/grafik/figur/<?=$row_mig[figur];?>">
    <img id="garderobe_toj" src="/chat/grafik/toj/<?=$row[toej];?>" style="left:0;position:absolute">
    <img id="garderobe_briller" src="/chat/grafik/tilb/<?=$row_har[tilb];?>" style="left:0;position:absolute">
    <img id="garderobe_briller" src="/chat/grafik/har/<?=$row_tilb[haar];?>" style="left:0;position:absolute">
</span><br><br>
<?php


echo "</table>";
?>
Og ajax koden:
var xmlHttp

function showCustomer(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getcustomer.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}

function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function showCustomer2(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getcustomer.php"
url=url+"?l="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}

function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function showCustomer3(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getcustomer.php"
url=url+"?i="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}

function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
Avatar billede jakobdo Ekspert
01. oktober 2006 - 00:30 #25
Du bruger vel denne vær gang:
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
Dermed indlæser du jo alt nyt kode i samme div hver gang.
Avatar billede chrisson Nybegynder
01. oktober 2006 - 00:33 #26
Ok, så jeg skal rette den til fx. document.getElementById("toej").innerHTML=xmlHttp.responseText
?
Avatar billede chrisson Nybegynder
01. oktober 2006 - 00:38 #27
Mærkeligt, selvom jeg har lavet det der, gør den det alligevældet:S
Avatar billede jakobdo Ekspert
01. oktober 2006 - 00:39 #28
Ja, evt lav en funktion som du kan fodre med feltets navn.
function getData(WHAT)
{
....
}

getData('toej');
getData('haar');
osv...
Avatar billede chrisson Nybegynder
01. oktober 2006 - 00:43 #29
Så god er jeg ikke til Ajax endnu :P kan du ikke lige vise? er stadig igang med en masse guides
Avatar billede jakobdo Ekspert
01. oktober 2006 - 00:47 #30
Nu har jeg stadig ikke set din kode live, så jeg ved ikke om du har flere felter, og hvad du præcist forsøger.
Men du skal jo lave et felt, som finder tøj. Det felt skal trække tøj info ud, og vise det i en div, f.eks. divToej.
Så skal du fra et andet felt finde info om hår. Det skal så vises i divHaar.
Du skal altså lave funktionen mere dynamisk.
Avatar billede chrisson Nybegynder
01. oktober 2006 - 00:49 #31
Avatar billede jakobdo Ekspert
01. oktober 2006 - 00:58 #32
Kan godt se de 2 felter er tomme.
Det må du jo lige få løst! :o)
Avatar billede chrisson Nybegynder
01. oktober 2006 - 01:03 #33
Sådan, men mange er ens, da jeg bare tog uden session jo :P
Avatar billede chrisson Nybegynder
01. oktober 2006 - 09:31 #34
Det var de 6 timers søvn :P nu er jeg baq
Avatar billede jakobdo Ekspert
01. oktober 2006 - 11:37 #35
Kom du videre med opgaven så?
Avatar billede chrisson Nybegynder
01. oktober 2006 - 11:49 #36
Fik ikke lavet garderoben færdig, men hvordan skal jeg gøre, når jeg skal igang med at lave chatsystemmet? hvordan skal det sættes op? altså hvad i hvilken filer
Avatar billede chrisson Nybegynder
01. oktober 2006 - 12:24 #37
....
Avatar billede chrisson Nybegynder
01. oktober 2006 - 12:45 #38
Er det her stadig?
Avatar billede chrisson Nybegynder
01. oktober 2006 - 12:52 #39
NU:
Det = du
FORTID:
Det = De
:P
Avatar billede jakobdo Ekspert
01. oktober 2006 - 16:35 #40
Jeg er her stadig, men har ikke tdi til at kigge på det nu.
Avatar billede olebole Juniormester
02. oktober 2006 - 13:59 #41
<ole>

Det grundlæggende princip i Ajax er at sende rå data mellem klient og server (somregel i XML- eller JSON-format), mens al HTML-formatering foregår ved hjælp af DOM på klienten.
Derfor har de eksempler, der vises her i tråden stort set intet med Ajax at gøre. Det opdager man desværre ikke, hvis man henter sine info hos w3schools.com ... et sted, der er herostratisk berømt for fejl, mangler og udeladelser, men som er komplet katastrofal, hvad angår Ajax!

/mvh
</bole>
Avatar billede chrisson Nybegynder
02. oktober 2006 - 14:48 #42
Kender du nogle steder jeg kan lære det ordenligt? eller bare nogle expempler?
Avatar billede olebole Juniormester
02. oktober 2006 - 15:01 #43
Prøv at kikke på links her:
    http://developer.mozilla.org/en/docs/AJAX

- og så er der en basis-artikel af manden, der navngav teknikken:
    http://adaptivepath.com/publications/essays/archives/000385.php
Avatar billede chrisson Nybegynder
09. januar 2007 - 16:21 #44
Jacob og ole, smid lige et svar.. er ved at rydde op i mine spm. da de ikke skal flyde...
Avatar billede jakobdo Ekspert
09. januar 2007 - 16:24 #45
Svar!
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