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.2009, 23:23  
Neuer Benutzer
 
Registriert seit: 25.07.2009
Beiträge: 13
PHP-Kenntnisse:
Fortgeschritten
tino91 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] InlineEdit mehrmals auf einer Seite

Hallo liebe PHP Community,

eventuell könnt ihr mir helfen.
Ich nutze zur Zeit das InlineEdit Javascript von YvoSchaap.com - New Music = New Lyrics .
Mein problem ist folgendes: Ich möchte auf einer HTML Seite das Javascript 2x einbinden, aber so das auch 2 verschiedene "Hintergrund-Scripte" angesprochen werden.

Ich habe schon versucht die Script-Einstellungen "vor" dem Inline-Feld zu ändern, was aber mal gleich gar nicht funktioniert - was ja auch (mir) im nachhinein logisch ist.

Der Browser verarbeitet natürlich das letzte Javascript was ihm geliefert wurde, also würde alle Inline-Felder auf das letzte Script geschrieben werden.

Das 1. Feld
Code:
<script type='text/javascript' src='js/instantedit.js'></script>
<script type='text/javascript'> setVarsForm('userID={$id}'); 	</script>
<script type='text/javascript'> var urlBase='js/kommentarupdate.php'; 	</script>
<td><span id='Kommentar' class='editText'>##BEARBEITEN## -- ".nl2br($data['hinweis'])."</span></td>
Das 2. Feld
Code:
<script type='text/javascript' src='js/instantedit.js'></script>
<script type='text/javascript'> setVarsForm('userID={$id}$modus=benutzername'); 	</script>
<script type='text/javascript'> var urlBase='js/accountupdate.php'; 	</script>
<td><span id='Benutzername' class='editText'>##BEARBEITEN## -- ".nl2br($data['hinweis'])."</span></td>
Gerne steige ich auch auf eine andere Inlinemöglichkeit um - zur Zeit habe ich aber nur ähnliche gefunden (manchmal mit jQuery mal ohne usw..)

Würde mich über Ideen freuen.
(Nur eine PHP-Datei zu nutzen möchte ich nicht, da ich die verschiedenen PHP Dateien mit verschiedenen Funktionen zusammenfüge und mir durch die verschiedenen Dateien einen kleinen Überblick verschaffe)

Viele Grüße

tino91
tino91 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.08.2009, 15:35  
Neuer Benutzer
 
Registriert seit: 25.07.2009
Beiträge: 13
PHP-Kenntnisse:
Fortgeschritten
tino91 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

habe das Inline-Edit Script nun für meine Zwecke angepasst.
Wer es haben möchte, kann sich bei mir melden.

Lg

Tino
tino91 ist offline   Mit Zitat antworten
Alt 10.01.2010, 11:19  
Neuer Benutzer
 
Registriert seit: 02.05.2009
Beiträge: 7
Tiimiiiboy befindet sich auf einem aufstrebenden Ast
Standard

kannst du mir vllt. mal deine lösung zukommen lassen?!
Das wäre nämlich sehr nett! (:
Tiimiiiboy ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:27  
Neuer Benutzer
 
Registriert seit: 25.07.2009
Beiträge: 13
PHP-Kenntnisse:
Fortgeschritten
tino91 befindet sich auf einem aufstrebenden Ast
Standard

Moin,

sorry das ich nicht sofort reagiert habe ...
Hier mal der Javascript-Code:

Code:
<!--
//main script by http://www.yvoschaap.com
//new script on billhost.de - tino schiffel

//XMLHttpRequest class function
function datosServidor() {
};
datosServidor.prototype.iniciar = function() {
	try {
		// Mozilla / Safari
		this._xh = new XMLHttpRequest();
	} catch (e) {
		// Explorer
		var _ieModelos = new Array(
		'MSXML2.XMLHTTP.5.0',
		'MSXML2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP'
		);
		var success = false;
		for (var i=0;i < _ieModelos.length && !success; i++) {
			try {
				this._xh = new ActiveXObject(_ieModelos[i]);
				success = true;
			} catch (e) {
			}
		}
		if ( !success ) {
			return false;
		}
		return true;
	}
}

datosServidor.prototype.ocupado = function() {
	estadoActual = this._xh.readyState;
	return (estadoActual && (estadoActual < 4));
}

datosServidor.prototype.procesa = function() {
	if (this._xh.readyState == 4 && this._xh.status == 200) {
		this.procesado = true;
	}
}

datosServidor.prototype.enviar = function(urlget,datos) {
	if (!this._xh) {
		this.iniciar();
	}
	if (!this.ocupado()) {
		this._xh.open("GET",urlget,false);
		this._xh.send(datos);
		if (this._xh.readyState == 4 && this._xh.status == 200) {
			return this._xh.responseText;
		}
		
	}
	return false;
}


var urlBase = "";
var formVars = "";
var changing = false;


function fieldEnter(campo,evt,idfld) {
	evt = (evt) ? evt : window.event;
	if (evt.keyCode == 13 && campo.value!="") {
		elem = document.getElementById( idfld );
		remotos = new datosServidor;
		//nt = remotos.enviar(escape(elem.id)+ urlBase + "?fieldname=" +encodeURI(elem.id)+ "&content="+encodeURI(campo.value)+"&"+formVars,"");
		teilen = elem.id.split("|")
		nt = remotos.enviar(escape(teilen[0])+ "?fieldname=" +encodeURI(elem.id)+ "&content="+encodeURI(campo.value)+"&"+encodeURI(teilen[1]),"");
		//remove glow
		noLight(elem);
		elem.innerHTML = unescape(nt);
		changing = false;
		return false;
	} else {
		return true;
	}


}

function fieldBlur(campo,idfld) {
	if (campo.value!="") {
		elem = document.getElementById( idfld );
		remotos = new datosServidor;
		//nt = remotos.enviar(escape(elem.id)+ urlBase + "?fieldname=" +escape(elem.id)+ "&content="+escape(campo.value)+"&"+formVars,"");
		teilen = elem.id.split("|")
		nt = remotos.enviar(escape(teilen[0]) + "?fieldname=" +escape(elem.id)+ "&content="+escape(campo.value)+"&"+encodeURI(teilen[1]),"");
		elem.innerHTML = unescape(nt);
		changing = false;
		return false;
	}
}


//function br2nl($str="") {
//    return str_replace(nl2br(chr(13)), chr(13), $str);
//}  

//edit field created
function editBox(actual) {
	//alert(actual.nodeName+' '+changing);
	if(!changing){
		width = widthEl(actual.id) + 20;
		height =heightEl(actual.id) + 2;
	
		if(height < 40){
			if(width < 100)	width = 150;
				actual.innerHTML = "<textarea name=\"textarea\" id=\""+ actual.id +"_field\" style=\"width: "+width+"px; height: 250px;\" onfocus=\"highLight(this);\" onblur=\"noLight(this); return fieldBlur(this,'" + actual.id + "');\">" + actual.innerHTML + "</textarea>";
				//actual.innerHTML = "<input id=\""+ actual.id +"_field\" style=\"width: "+width+"px; height: "+height+"px;\" maxlength=\"254\" type=\"text\" value=\"" + actual.innerHTML + "\" onkeypress=\"return fieldEnter(this,event,'" + actual.id + "')\" onfocus=\"highLight(this);\" onblur=\"noLight(this); return fieldBlur(this,'" + actual.id + "');\" />";
		}else{
			if(width < 70) width = 90;
			if(height < 50) height = 50;
			actual.innerHTML = "<textarea name=\"textarea\" id=\""+ actual.id +"_field\" style=\"width: "+width+"px; height: 250px;\" onfocus=\"highLight(this);\" onblur=\"noLight(this); return fieldBlur(this,'" + actual.id + "');\">" + actual.innerHTML + "</textarea>";
		}
		changing = true;
	}

		actual.firstChild.focus();
}



//find all span tags with class editText and id as fieldname parsed to update script. add onclick function
function editbox_init(){
	if (!document.getElementsByTagName){ return; }
	var spans = document.getElementsByTagName("span");

	// loop through all span tags
	for (var i=0; i<spans.length; i++){
		var spn = spans[i];

        	if (((' '+spn.className+' ').indexOf("editText") != -1) && (spn.id)) {
			spn.onclick = function () { editBox(this); }
			spn.style.cursor = "pointer";
			spn.title = "Zum editieren klicken!";	
       		}

	}


}

//crossbrowser load function
function addEvent(elm, evType, fn, useCapture)
{
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Please upgrade your browser to use full functionality on this page");
  }
}

//get width of text element
function widthEl(span){

	if (document.layers){
	  w=document.layers[span].clip.width;
	} else if (document.all && !document.getElementById){
	  w=document.all[span].offsetWidth;
	} else if(document.getElementById){
	  w=document.getElementById(span).offsetWidth;
	}
return w;
}

//get height of text element
function heightEl(span){

	if (document.layers){
	  h=document.layers[span].clip.height;
	} else if (document.all && !document.getElementById){
	  h=document.all[span].offsetHeight;
	} else if(document.getElementById){
	  h=document.getElementById(span).offsetHeight;
	}
return h;
}

function highLight(span){
            //span.parentNode.style.border = "2px solid #D1FDCD";
            //span.parentNode.style.padding = "0";
            span.style.border = "1px solid #54CE43";          
}

function noLight(span){
        //span.parentNode.style.border = "0px";
        //span.parentNode.style.padding = "2px";
        span.style.border = "0px";   


}

//sets post/get vars for update
function setVarsForm(vars){
	formVars  = vars;
}

//url zum backendscript setzen
//function setBaseURL(url){
//	urlBase  = url;
//}

addEvent(window, "load", editbox_init);
-->
Hier ein Beispiel des Aufrufes:

Code:
<span id='js/mein_php_script.php|parameter1=531&modus=sr&zahl=854' class='editText'>Klick mich</span>
In diesem Fall wird eine PHP-Datei deiner Wahl angesteuert. Nach dem Trennzeichen | kannst du Parameter deiner Wahl übergeben.
(die PHP Datei muss diese Parameter über $_GET annehmen. )

Viele Grüße

Tino
tino91 ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:45  
Neuer Benutzer
 
Registriert seit: 02.05.2009
Beiträge: 7
Tiimiiiboy befindet sich auf einem aufstrebenden Ast
Standard

wie muss die javascript datei heißen vom code?
Sorry, habe kein plan von dem zeug!

Schon gut!

Melde mich wieder wenn es ein problem gibt! (:

Geändert von Tiimiiiboy (14.01.2010 um 13:49 Uhr).
Tiimiiiboy ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:50  
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

Wir sind nicht dafür da Fertiglösungen zu schreiben. Wir helfen dir gerne bei Problemen, die Arbeit musst du aber schon selber machen
Flor1an ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:57  
Neuer Benutzer
 
Registriert seit: 25.07.2009
Beiträge: 13
PHP-Kenntnisse:
Fortgeschritten
tino91 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ich muss dem Modi leider mal recht geben.
Wie die JS Datei heißen soll, ist dir doch überlassen.

Denke dir einen Namen aus (z.B inline.js) und binde die Datei dann in deinen HTML-Quellcode ein:

Zitat:
<script type="text/javascript" src="inline.js"></script>
Viele Grüße

Tino
tino91 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
CURL in Seite einloggen und einen Teil parsen Matt PHP Tipps 2008 8 03.09.2009 22:30
Eintrag in DB und Wechsel zu anderer Seite Darson PHP Tipps 2008 25 14.01.2008 16:46
Seite nicht mehr gültig Igäl PHP Tipps 2006 3 25.05.2006 16:08
[Erledigt] Wetten automatisch von anderer Seite beziehen PHP Tipps 2006 11 03.03.2006 09:09
Formular - Daten für nächste Seite behalten NetLook PHP Tipps 2007 7 18.11.2005 13:21
Frame schließen und [Erledigt] InlineEdit mehrmals auf einer Seite workaholic HTML, Usability und Barrierefreiheit 2 06.09.2005 13:36
Mit post an weitere Seite oder 2 Seiten übergeben? PHP Tipps 2005 1 02.02.2005 12:16
Neue Seite an einer bestimmten Stelle aufrufen PHP Tipps 2005 3 13.01.2005 10:09
blätterfunktion-limit-letzte seite PHP Tipps 2004-2 2 20.12.2004 23:56
[Erledigt] php+Seite kann nicht angeziegt werden, Seite existiert aber Server, Hosting und Workstations 2 09.09.2004 08:21
Eine 2te Seite auto matisch in neuem Fenster laden PHP Tipps 2004 4 25.08.2004 14:10
[Erledigt] Tabelle auf einer Seite auslesen und in meiner Seite wiederg PHP Tipps 2004 2 14.07.2004 08:46
"NEWS-SCRIPT" in eine Seite einbinden: Aber wie ? PHP Tipps 2004 2 03.07.2004 16:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
inline edit, jquery inline edit, inline editing javascript, inlineedit php, event table edit nl2br, prototype edit inline, inline edit php, ajax inline edit, php inline editing, inline editing jquery, javascript inline edit, javascript inline editor xml, \please upgrade your browser to use full functionality on this page\, php inline editor, jquery inline editing, jquery inline edit php, php inline edit, inlineedit, wie formular an php mit inlineedit, inline editing jquery php

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