Ajax - php uhrzeit funktioniert unter FF und IE nicht

Hallo, ich bins mal wieder,... :(

ich würde gerne eine uhr auf meiner hp einbinden allerdings funktioniert die Uhr nur unter Opera (problemlos), der IE zeigt mir nur einmal die uhrzeit an und behält diese standartmäßig ohne sie zu aktualisieren und der FF macht rein gar nix, ich weiß ehrlich gesagt nicht mehr was ich tun soll :/

mein js script:
HTML:
function Uhr()
{

  var http = false;
  if (navigator.appName == "Microsoft Internet Explorer")
  {
    http = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    http = new XMLHttpRequest();
  }
  http.open("POST", "http://www.meinedomain.de/uhrzeit.php", true);
  http.onreadystatechange=function() {
       if(http.readyState == 4) {
       document.getElementById("uhr").innerHTML=http.responseText;
       }
  }
  http.send(null);
  window.setTimeout("Uhr()", 1000);
}

die zeilen in der aufrufenden datei:
HTML:
<head>
<script src="http://www.meinedomain.de/uhr.js"></script>
</head>
<body onload="Uhr()">
<span Id=\"uhr\"> </span>

und noch die php datei:
PHP:
$timestamp = time();
//$datum = date("d.m.Y", $timestamp);
$uhrzeit = date("H:i:s", $timestamp);
// echo $datum," - ",$uhrzeit," Uhr";
echo $uhrzeit, " Uhr";

Bitte helft mir, hab keine Ahnung woran das liegen könnte, bzw was ich dagegen tun kann..

mfg selig
 
soweit ich das weis, streikt der FF wenn du vom JS auf ein entferntes PHP-Skript zugreifen willst...zumindest hatte ich damit mal Probleme und dein Problem hört sich sehr ähnlich an...
 
wenn ne uhrzeit angezeigt wird und dann nicht aktuallisiert, liegt das daran, dass das ganze im browsercache hängt.

das kannst du umgehen indem du einfach ne zeit ranhängst ;)

zb sowas hier:

Code:
req("/include/shoutbox.php?ajax=1&time=" + now.getTime(),"shouttext","POST",post);
 
Danke ihr zwei,...
Problem eins hat sich von alleine beseitigt (warum auch immer, den ich hab meine möhre schon gestern mehrmals neugestartet - egal ich bin zufrieden)
Das Problem mit dem Fremdverlinken, (z.B. aus anderem Verzeichniss) habe ich so gelöst: url/pfad/datei dann hat das hingehauen, davor konnte ich auch nicht einfach dateien aus einem anderen verzeichnis aufrufen...
Bin allerdings auch mit FF 4RC unterwegs =)

Problem zwei habe ich dank deines Tipps mit dem Cache, nach ein wenig googlen hinbekommen!
Die Lösung (zumindest geht's):

....setRequestHeader("Pragma", "no-cache");

meine datei sieht nun so aus:

Code:
function Uhr()
{

  var http = false;
  if (navigator.appName == "Microsoft Internet Explorer")
  {
    http = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    http = new XMLHttpRequest();
  }
  http.open("POST", "http://www.meinedomain.de/server.php", true);

  [B][I][U]http.setRequestHeader("Pragma", "no-cache");[/U]

[/I][/B]  http.onreadystatechange=function() {
       if(http.readyState == 4) {
       document.getElementById("uhr").innerHTML=http.responseText;
       }
  }
  http.send(null);
  window.setTimeout("Uhr()", 1000);
}

nochmals vielen Dank, aber ich hätte auch schon das nächste Problem:

Ich bin seit einer woche am googlen ohne ende, und nichts will funktionieren - ich möchte ein html Formular an eine php datei übergeben (per post) die mir die werte dann verarbeitet (die php datei ist kein problem) - hab natürlich auch schon fleißig gegoogelt,... aber naja ich bekomm einfach nix hin.

ich möchte nur das die daten ohne seiten reload oder verlassen der seite an meine php datei geschickt wird,.. gleichzeitig soll das formular geleert werden und wieder so wie beim aufruf der seite dastehen, also einfach nur leer und unberührt (und das alles eben ohne reload) - aber erst nach submit
 
okay, ich habe jetzt ne lösung um das formular zu senden,...
allerdings weiß ich immer noch nicht, und finde auch nix um nach dem absenden das formular zu cleanen (soll einfach wieder leer sein)

mein bisheriger code:

HTML:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js">
</script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var name = $("#name").val();
var username = $("#username").val();
var dataString = 'name='+ name + '&email=' + username;

if(name=='' || username=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax({
type: "POST",
url: "send.php",
data: dataString,
success: function(){
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
});
});
</script>
</head>

<body>
<form method="post" name="form">
<ul><li>
<input id="name" name="name" type="text" />
</li><li>
<input id="username" name="username" type="text" />
</li></ul>


<div >
<input type="submit" value="Submit" class="submit"/>
<span class="error" style="display:none"> Please Enter Valid Data</span>
<span class="success" style="display:none"> Registration Successfully</span>
</div></form>
</body>
</html>


okay ich hab's geschafft mit diesem netten js befehl: document.formularName.reset();



HTML:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js">
</script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var name = $("#name").val();
var username = $("#username").val();
var dataString = 'name='+ name + '&email=' + username;

if(name=='' || username=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax({
type: "POST",
url: "send.php",
data: dataString,
success: function(){
[B][I][U]document.form.reset();[/U][/I][/B]
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
});
});
</script>
</head>

<body>
<form method="post" name="form" id="form">
<ul><li>
<input id="name" name="name" type="text" />
</li><li>
<input id="username" name="username" type="text" />
</li></ul>


<div >
<input type="submit" value="Submit" class="submit"/>
<span class="error" style="display:none"> Da ging was schief</span>
<span class="success" style="display:none">Gesendet</span>
</div></form>
</body>
</html>

danke das du dir solche mühe mit meinen problem(chen) gegeben hast,...
hätte ich ohne dich vermutlich nicht geschafft =)))
 
Zuletzt bearbeitet:
Okay,... mal noch ne Frage,... ich gebe Meine Daten über Ajax in ein Formularfeld aus! Nur hab ich das Problem das die Daten jetzt mittig (nicht center) sondern mittig von der höhe her in meinem Textfeld ausgegeben werden... hat mir da jemand evtl ne Lösung, hab nämlich keine Ahnung wie ich das in den Griff bekomme.


Mfg Selig
 
Zuletzt bearbeitet:
Zurück
Oben