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 18.08.2010, 00:33  
Benutzer
 
Registriert seit: 18.08.2010
Beiträge: 34
PHP-Kenntnisse:
Anfänger
marcial befindet sich auf einem aufstrebenden Ast
Standard Dynamischer Seitenaufruf + Verifizieren der Angabe + mysql Datenaustausch?

Hey Leute,

vor kurzen habe ich mich mit JS und Ajax beschäftigt, da ich CMS - die ich erstelle - gerne "modern" haben würde.

Ich habe angefangen PHP und mySQL über Tutorials und Videos zu lernen und bisher immer fast ausschließlich damit gearbeitet, d.h. jedes Mal komplett neuer Website Aufbau, egal bei was für Aufrufen.

Nun habe ich nach Scripts gesucht, die dynamisches Laden von Seiten erlauben (damit meine ich, dass nur der "Content" der Seite ausgetauscht wird.

Eine Menu, der Header, Footer etc. soll unberührt bleiben.

Das hat mithilfe der Codebeispiele von hier sehr gut geklappt.

Hier die zwei Funktionen:

Code:
function ajaxpage(url, containerid)
{
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
	page_request = new XMLHttpRequest()
	else if (window.ActiveXObject) // if IE
	{
		try 
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
		return false
	page_request.onreadystatechange=function()
	{
		loadpage(page_request, containerid)
	}
	page_request.open('GET', url, true)
	page_request.send(null)
}

function loadpage(page_request, containerid)
{
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
		document.getElementById(containerid).innerHTML=page_request.responseText
}
Allerdings hatte ich für meine Registrierungspage bereits eine Formvalidation in Javascript erstellt.

Die sieht in etwa so aus:

Code:
function verify()
{
    var error = false;
    if((document.getElementsByName("name")[0].value) == "")
    {
        error = true;
    }
    else if(... // mehrere Felder werden gecheckt
    }
    if(error==true)
    {
        return false;
    }
	else
		return true;
}
Beim Senden der Form:

Code:
<form action="index.php" method=post onsubmit="return verify();">
Die Funktion funktioniert aufgerufen wunderbar, allerdings nicht wenn ich die Seite dynamisch lade. Dann kann ich die Form immer abschicken, als ob die Funktion nicht aufgerufen wird.

Hat jmd. ne Idee woran das liegt? JavaScript und AJAX sind für mich ziemliches Neuland, bin da also noch sehr uninformiert.


Meine zweite Frage bezieht sich auf den Datenaustausch mit einer MySQL Tabelle.

Meine Idee ist, beim Registrieren, zuerst die Angaben durch die Java Funktion laufen zu lassen und dann nochmal über eine PHP Funktion zu testen und an die DB zu senden (falls Leute JS deaktivieren etc.).

Ist das generell ein guter Ansatz oder übersehe ich hier etwas / sollte ich es anders machen etc?
marcial ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.08.2010, 01:02  
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 marcial Beitrag anzeigen
Nun habe ich nach Scripts gesucht, die dynamisches Laden von Seiten erlauben (damit meine ich, dass nur der "Content" der Seite ausgetauscht wird.

Eine Menu, der Header, Footer etc. soll unberührt bleiben.
Damit bastelt man im wesentlichen die massiven Usability-Nachteile nach, die Frames schon immer hatten ...


Zitat:
Die Funktion funktioniert aufgerufen wunderbar, allerdings nicht wenn ich die Seite dynamisch lade. Dann kann ich die Form immer abschicken, als ob die Funktion nicht aufgerufen wird.

Hat jmd. ne Idee woran das liegt?
Daran, dass per innerHTML irgendwo reinsetzter JS-Code nicht ausgeführt wird.

Wege, das zu umgehen, sind im Netz dokumentiert; auch bei den großen Frameworks kann man sich diesbezüglich sicher was abschauen.

Zitat:
Meine Idee ist, beim Registrieren, zuerst die Angaben durch die Java Funktion laufen zu lassen und dann nochmal über eine PHP Funktion zu testen und an die DB zu senden (falls Leute JS deaktivieren etc.).
Selbstverständlich sind Daten serverseitig immer zu validieren.
Clientseitige Validierung kann man als reines Komfortmerkmal noch hinzunehmen, wenn man möchte (spart dem Nutzer einen Request, wenn die Daten noch fehlerhaft sind).

Und bitte nicht JAVA und JavaScript in einen Topf schmeißen, das sind vollkommen unterschiedliche Sprachen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.08.2010, 01:12  
Benutzer
 
Registriert seit: 18.08.2010
Beiträge: 34
PHP-Kenntnisse:
Anfänger
marcial befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Daran, dass per innerHTML irgendwo reinsetzter JS-Code nicht ausgeführt wird.
Alles klar, das hilft mir schonmal weiter. Danke.

Serverseitiges validieren ist klar, wollte nur wissen ob der Ansatz so Macken hat oder ok ist.

Zitat:
Und bitte nicht JAVA und JavaScript in einen Topf schmeißen, das sind vollkommen unterschiedliche Sprachen.
Keine Angst, wie du vll. mal selbst gemerkt hast, schreibt man schnell mal Java, hat aber davor permanent von JS geredet ist in der JavaScript Sektion und es sollte auch offensichtlich sein was gemeint ist.

Geändert von marcial (18.08.2010 um 01:31 Uhr).
marcial ist offline   Mit Zitat antworten
Alt 18.08.2010, 08:47  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Wie Chris schon geschrieben hat würde ich AJAX nicht unbedingt zum Nachladen kompletter Seiten verwenden. Dann muss man sich wieder um den Zurück-Knopf kümmern und andere nervige Dinge. AJAX macht IMHO vor allem dann Sinn, wenn man abgeschlossene Einheiten hat (wie z.B. Datentabellen) oder wenn man "Dialogfenster" anzeigen möchte. Also sprich: Immer dann, wenn sich nur Teile des Contents ändern. Ändert sich der ganze Content macht es keinen Unterschied (abgesehen vom erwähnten Zurück-Knopf oder der sich bewegenden Lade-Anzeige im Browser).

Das Problem wurde ja auch schon beschrieben (JS wird nicht ausgeführt wenn es einfach so eingefügt wird). Generell würde ich bei hohem AJAX / JS - Anteil auf eines der JS Frameworks gehen. JQuery hat die größte Anhängerschaft, ich bevorzuge allerdings MooTools. Man muss sich zwar in die Frameworks einarbeiten, erspart sich aber eine Menge Kopfzerbrechen. So ist bei Mootools z.B. das Ausführen von in AJAX-Responses eingebettetem JS, das setzen einer einzigen Option.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 18.08.2010, 12:58  
Benutzer
 
Registriert seit: 18.08.2010
Beiträge: 34
PHP-Kenntnisse:
Anfänger
marcial befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für die ausführliche Erklärung.

Ich denke ich werde dann doch eher Abstand von Ajax und JS halten und es nur in ganz bestimmten Fällen benutzen (zusätzl. Client seitige Validierung von Eingabe etc.), anstelle zu versuchen es für "alles" zu benutzen.

Gruß,

marcial
marcial 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
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
dynamischer seitenaufbau dank php & mysql? alitlux PHP Tipps 2009 9 29.04.2009 16:27
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
[Erledigt] dynamischer Drop Down als Auswahl für Tabellenwahl in MYSQL meshking PHP Tipps 2009 10 16.03.2009 15:15
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Dynamischer Eingriff in das DB-Modell (MySQL < 4) Datenbanken 0 18.07.2005 13:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript seitenzahlen, php dynamischer seitenaufruf, mysql dynamisch nachladen, seitenaufruf nur über ajax erlauben, mysql java daten nachladen html, javascript seitenaufruf, javascript seitenzahl, http://www.php.de/javascript-ajax-und-mehr/70875-dynamischer-seitenaufruf-verifizieren-der-angabe-mysql-datenaustausch.html, funktionsweise seitenabruf bei dynamischen php seite, funktionsweise seitenabruf bei dynamischen php webseiten, dynamische seite php mysql variabler seiteninhalt, datenaustausch php sql, php webseite verifizieren, php seitenaufruf selber frame, ajaxpage umlaute falsch, seiten dynamisch mit ajax, page_request.send null error, dynamischer seitenaufruf mit php, dynamische seiten mit ajax, datenaustausch php ajax

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:51 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