ugrás a tartalomhoz

Ajax Css IE problema

vami · 2008. Ápr. 2. (Sze), 20.55
Kezdo vagyok az ajaxban. Ma csinaltam 1 oldalt ajax segitsegevel ujra toltok rajta dolgokat ezek meg is jelennek de a a css nem erzekeli oket IE-alatt, valamint a kiirt javascript nem jelenik meg gondolom az nem fut le.Megoldasokat keresek :D
Elore is koszonom
 
1

Delphoi...

zila · 2008. Ápr. 2. (Sze), 21.21
...messze van, kávézaccból sem tudunk jósolni. Mutass kódrészletet akkor talán tudunk segíteni, anélkül csak vaktában lövöldözünk. Én általában kerülöm javascript letöltését ajax tartalomként, bár néha elkerülhetetlen. Ilyenkor kell szórakozni az eval-lal. Vagy prototype/jquery/ext/stb. frameworkot kell használni.
2

KOD

vami · 2008. Ápr. 2. (Sze), 21.47
JS
var xmlHttp

function loadContent(pageNr,divID)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="php/loadcontent.php";
url=url+"?q="+pageNr;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("rightColumn").innerHTML=xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
///////////////
PHP
<?php
include('database.php');
$ab = new Adatbazis();
if ($ab->connect()) {
// echo "kapcsolt<br />";
} else {
// echo "nem kapcsolt<br />";
}
if ($ab->selectDatabase('vidcol_99k_org_db')) {
// echo "ab kivalasztva<br />";
} else {
// echo "ab kivalasztas hiba<br />";
}
$sql = "SELECT * FROM videos Where id=1 " ;
$res = $ab->command($sql);
if (!$res) {
// echo 'command hiba<br />';
// echo $ab->getError();
} else {

while($row = mysql_fetch_array($res))
{

echo ' <div class="block"<h1>'.$row['name']. '</h1>
<div class="adsense">
<script type="text/javascript"><!--
google_ad_client = "pub-2573594588939938";
/* 120x240, created 3/30/08 */
google_ad_slot = "8935271001";
google_ad_width = 120;
google_ad_height = 240;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>'.
$row["link"].
' </div>';
}
}
$ab->disconnect();
?>

A IE ben nem valtozik meg a h1 merete es szine
A google hirdetes pedig nem jelenik meg sehol sem.
3

Megvan

vami · 2008. Ápr. 2. (Sze), 22.38
elhagytam 1 '>'
ezt az eval()-os dolgot kifejtened??
4

Biztosan AJAX kell neked?

zila · 2008. Ápr. 2. (Sze), 22.57
A jövőben használd a kódszinezőt, ha kódot szúrsz be, picit jobban átláthatóbb úgy a kódrészlet...

Több sebből is vérzik a kódod, pl. globális ajax objektumod van, ez érdekes hibákhoz vezethet, ha egyszerre több ajax hívást indítasz, de ez most lényegtelen.

Szerintem jobban járnál, ha ezt nem ajax-szal hanem sima iframe-mel oldanád meg, mert így csak bonyolultan lehet megoldani a problémát:

    * regexp-ekkel kiszeded a responseText-ből a <script> ... </script> blokkok közti részeket és ezeket eval-ozod
    * dom xml-t adsz vissza és eszerint frissíted a tartalmat.
    * json strukturát használsz, a script elemeket eval-ozod
    * prototype.js-t használsz és annak evalScripts tulajdonságát


Legegyszerűbb megoldás a prototype.js abban kb. ennyi a dolog:
new Ajax.Updater(
        	'rightColumn', 
        	'php/loadcontent.php', 
        	{	method: 'get',
        		asynchronous:true, 
        		parameters: { q: pageNr, sid: Math.random() },
        	 	evalScripts:true
        	 }
      	);