php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.08.2010, 13:26  
Neuer Benutzer
 
Registriert seit: 11.08.2010
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
bartenbach befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Probleme im IE, FireFox klappt

Hallo!

Ich habe im FireFox mit meinem Script keine Probleme.

Das Script soll eine Anfrage an eine MySQL Datenbank schicken und das Ergebniss ausgeben.

Folgendes sind meine Scripte:

nachrichten_ausgabe.php (Bekommt via $_POST oder $_GET die Variable "user" mit dem jeweiligen Username)
PHP-Code:
<?php

$time 
time();
$datum date("d.m.Y",$time);
$uzeit date("H:i:s",$time);

$db =  mysql_connect(localhost,**,**);
    
if (
$_GET['user'])
    {    
$userl strtolower($_GET['user']);
    }
    else
    {    
$userl strtolower($_POST['user']);
    }
    
if (
$_GET['mark'])
    {    
$sql "UPDATE nachrichten SET status = '1' WHERE id = '".$_GET['mark']."'";
        
$res mysql_db_query(intranet,$sql);

    }
if (
$_GET['read'])
    {    
$sql "UPDATE nachrichten SET status = '1' WHERE touser = '".$userl."'";
        
$res mysql_db_query(intranet,$sql);

    }
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<title>Nachrichten</title>
<script type='text/javascript' src='nachrichten_ajax.js'></script>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
 <tbody>
  <tr>
   <td width='33%' align='left'><?= $datum ?></td>
   <td width='34%' align='center'><font size='1'><a href='nachrichten_ausgabe.php?read=true&user=<?= $userl ?>' target='ausgabe'>Alle als gelesen markieren</a></font></td> 
   <td width='33%' align='right'>Loginzeit: <?= $uzeit ?></td>
  </tr>
 </tbody>
</table>

<table width="100%" border="0" cellpadding="20" cellspacing="20">
 <tr>
  <td valign="middle" style="border: 1px solid #666666;background-color:#FFFFFF;">


<?
# NACHRICHTEN AUSLESEN ANFANG
if ($user)
    {
echo 
"<div id='eingabe' name='eingabe'>

<input type='hidden' name='search' id='search' size='10' class='Feld2' value='"
.$user."' />
 <div id='suggestions' class='suggestionsBox' style='z-index:3;'>
  <div id='ajaxresultate' class='suggestionList'>"
;
 
    
echo 
"</div></div></div>";
    }
    else
    {    echo 
"Error: Kein User angemeldet";
    }
# NACHRICHTEN AUSLESEN ENDE                    
?>

  </td>
 </tr>
</table>

<?
mysql_close
($db);    
?>
</body>
</html>
nachrichten_suche.php
PHP-Code:
<?php
            $dbhost         
"localhost";
            
$dbuser         "**";
            
$dbpass         "**";    
            
$datenbank         "intranet";
            
$dbtable         "nachrichten";
            
            
mysql_connect($dbhost,$dbuser,$dbpass) or 
            die (
"Keine Verbindung moeglich");
            
            
mysql_select_db($datenbank) or
            die (
"Die Datenbank existiert nicht");
            
                    
$sql "SELECT * FROM ".$dbtable." WHERE (touser = '".$_GET['search']."' OR user = '".$_GET['search']."') ORDER BY id DESC LIMIT 0,5";
                    
$res mysql_query($sql);
                    
$rows mysql_num_rows($res);
                    
$userl $_GET['search'];

                    echo 
"<table width='100%' border='0' cellpadding='0' cellspacing='0'><tbody>";
                    
                    if (!
$rows)
                        {    echo 
"<tr>
                                   <td colspan='2' align='center'>Es sind keine Nachrichten vorhanden.</td>
                                 </tr>"
;
                        }
                        else
                            {    echo 
"<tr>
                                       <td colspan='2'><hr width='100%' color='black'></td>
                                     </tr>"
;
                    for(
$i=0$i<$rows$i++)
                        {    
$id mysql_result($res,$i,"id");
                            
$user strtolower(mysql_result($res,$i,"user"));
                            
$touser strtolower(mysql_result($res,$i,"touser"));
                            
$time date("d.m.Y H:i:s",mysql_result($res,$i,"time"));
                            
$message utf8_encode(mysql_result($res,$i,"message"));
                            
$status utf8_encode(mysql_result($res,$i,"status"));
                                    
                            if (
$user !== $userl)
                                {    echo 
"<tr bgcolor='#EEEEEE'><td><b>von $user</b> ($time Uhr)<br /><i>$message</i></td>";
                                }
                                else
                                {    echo 
"<tr><td><b>an $touser</b> ($time Uhr)<br /><i>$message</i></td>";
                                }
                                   
                            if (
$status == "0" AND $user !== $userl
                                {    echo 
"<td width='45'><a href='nachrichten_ausgabe.php?mark=$id&user=$userl' target='ausgabe'><img src='./images/del.gif' border='0' /></a> | <a href='nachrichten_eingabe.php?to=$user&user=$userl' target='eingabe'><img src='./images/reply.gif' border='0' /></a></td>";
                                }
                                else if (
$user !== $userl)
                                {    echo 
"<td width='45'>&nbsp;</td>";
                                }                
                            
                            echo 
"</tr>
                                 <tr>
                                   <td colspan='2'><hr width='100%' color='black'></td>
                                 </tr>"
;
                        
                        }
                        
                            }
                    echo 
"</tbody></table>";
?>
nachrichten_ajax.js
Code:
	var zeitintervall ;
	var xhr ;
	var wiederholung ;
	
	window.onload = function () 
		{	
		wiederholung = window.setTimeout('tasteneingabe()',100);
		setInterval('time()',5000);
		
		if ( window.XMLHttpRequest ) 
				{	xhr = new XMLHttpRequest() ; // Alle Mozilla-basierten Browser
				}
				else if ( window.ActiveXObject ) 
					{	xhr = new ActiveXObject( "Microsoft.XMLHTTP" ) ; // der liebe gute IE :)
					}
		}
	
	function time() 
		{	wiederholung = window.setTimeout('tasteneingabe()',5000);
		}
			
	function tasteneingabe () 
		{	clearTimeout( zeitintervall ) ;
			zeitintervall = setTimeout( "neuesuche()", 100 ) ;
		}
	
	function neuesuche () 
		{			sendeajaxanfrage ( document.getElementById( "search" ).value ) ;
		}

    function sendeajaxanfrage (search) 
		{	xhr.open( "GET", "nachrichten_suche.php?search=" + search, true ) ;
			xhr.onreadystatechange = ajaxverbindung ;
			xhr.send( null ) ;
		};

	function ajaxverbindung () 
		{	if ( xhr.readyState == 4 ) 
				{ 	var input = document.getElementById( "search" ) ;
					input.style.backgroundImage = "none";
					
					var div = document.getElementById( "ajaxresultate" ) ;
					div.innerHTML = xhr.responseText ;
					
					var div = document.getElementById( "ajaxresultate" ) ;
					div.style.display = "inline" ;
										
					var diva = document.getElementById( "suggestions" ) ;
					diva.style.display = "inline" ;
				}
		}
Die Datenbank heißt nachrichten (Tabelle: intranet) und es sind folgende Felder vorhanden:
* id
* user
* time
* message
* touser
* status

Das komisch ist im FireFox funktioniert alles ohne Probleme.
Im InternetExplorer funktioniert es teilweise, das heißt wenn ich in die Seite einsteige dann scheint es zu funktionieren nur nach einiger Zeit fehlern Datenbank-Einträge.

Was habe ich falsch gemacht?
DANKE!!

Geändert von bartenbach (11.08.2010 um 13:28 Uhr). Grund: MySql-Eigenschaften hinzugefügt
bartenbach ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.08.2010, 13:32  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Am besten schmeißt du mal den Debugger vom IE an, der zeigt dir vielleicht nen Fehler auf!
Flor1an ist offline   Mit Zitat antworten
Alt 11.08.2010, 13:36  
Neuer Benutzer
 
Registriert seit: 11.08.2010
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
bartenbach befindet sich auf einem aufstrebenden Ast
Standard

immer wenn ich den Browsercache leere ohne die Seite zu aktualisieren werden alle Datensätze angezeigt ...
Im Debugger seh ich nichts ...
bartenbach ist offline   Mit Zitat antworten
Alt 11.08.2010, 13:39  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Dass der IE beim Anfordern von Ressourcen per XMLHttpRequest mit Methode GET ein Cache-Problem hat, ist altbekannt.

Und die Faustregel ist, dass man für Daten verändernde Requests POST nehmen sollte.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.08.2010, 13:46  
Neuer Benutzer
 
Registriert seit: 11.08.2010
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
bartenbach befindet sich auf einem aufstrebenden Ast
Standard

Okay und wie sende ich dann via POST argumente mit?

Code:
xhr.open( "POST", "nachrichten_suche.php?search=" + search, true ) ;
geht natürlich nicht...

die Änderung in der nachrichten_suche.php ist klar, einfach $_GET durch $_POST ersetzten.
bartenbach ist offline   Mit Zitat antworten
Alt 11.08.2010, 13:49  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von bartenbach Beitrag anzeigen
Okay und wie sende ich dann via POST argumente mit? [...] geht natürlich nicht...
Nee, aber mal selber im Netz informieren geht ganz bestimmt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.08.2010, 14:04  
Neuer Benutzer
 
Registriert seit: 11.08.2010
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
bartenbach befindet sich auf einem aufstrebenden Ast
Standard

so ich habe jetzt geschaut und gefunden:

Code:
    function sendeajaxanfrage (search) 
		{	xhr.open( "POST", "nachrichten_suche.php", true ) ;
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send( "search=" + search );
			xhr.onreadystatechange = ajaxverbindung ;
		}
ich hoffe jetzt das es damit klappt - ich lass das Script jetzt mal ne Zeit laufen!
Danke bisher!!

Geändert von bartenbach (11.08.2010 um 14:19 Uhr). Grund: gelöst!
bartenbach ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Firefox spinnt beim aufruf von localhost BlackScorp Server, Hosting und Workstations 6 15.10.2009 13:18
[Erledigt] Probleme mit Firefox 3.5.1 Piory PHP Tipps 2009 7 21.07.2009 13:33
[Erledigt] Firefox / IE - Probleme HTML, Usability und Barrierefreiheit 5 20.07.2009 17:04
[Erledigt] SESSION im Firefox gibt probleme larabad PHP Tipps 2009 14 16.05.2009 12:30
[Erledigt] probleme mit firefox bei login-system mit registrierung xstefxanx PHP Tipps 2009 6 02.04.2009 16:35
Win+Firefox alles ok, IE oder Linux: Probleme vollderdude PHP Tipps 2009 6 02.01.2009 16:17
probleme bei internet explorer und firefox igron PHP Tipps 2008 0 12.05.2008 17:27
Firefox / IE - ungeahnte Statistik pepe24 Off-Topic Diskussionen 10 30.04.2007 16:46
Session funktioniert im IE nicht, Firefox ohne Probleme havok PHP Tipps 2006 7 14.08.2006 14:05
Probleme mit Firefox lessiv Off-Topic Diskussionen 1 10.01.2006 15:19
[Erledigt] window.location.href mit firefox HTML, Usability und Barrierefreiheit 15 18.11.2005 17:49
CSS Layout macht Probleme mit Firefox Wimme HTML, Usability und Barrierefreiheit 2 15.10.2005 13:33
Deer Park Alpha 1 (=Mozilla Firefox 1.1) Off-Topic Diskussionen 15 09.07.2005 02:32
[Erledigt] verfluchter Firefox HTML, Usability und Barrierefreiheit 5 08.07.2005 22:51
Morzilla Firefox und CSS probleme JEGO HTML, Usability und Barrierefreiheit 20 18.11.2004 21:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/javascript-ajax-und-mehr/70665-erledigt-probleme-im-ie-firefox-klappt.html, window.href.location ie cache problem, ajax update firefox layout problem, ajax session iexplorer firefox, utf8_encode klappt im ie nicht, php get utf-u ie, utf8_encode internet explorer, ie ajax utf8_encode, php utf8_encode firefox, utf8_encode internet explorer php, internet explorer probleme mit $_get, internet explorer $_get problem, <meta http-equiv=\pragma\ content=\no-cache\> ie9, ie utf8_encode problem, strtolower problem in ie9, utf8_encode ie firefox, aufruf iexplore funktioniert nicht, php funktioniert nur teilweise mit ie, ajax php script aufrufen cache \ie\, firefox html date geht nicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum