Seite 1 von 1

woher kommt des verflixte id="m1"

Verfasst: Mi 22. Feb 2006, 09:26
von mvf
hallo community

ich meine das schon mal im forum gelesen zu haben, finde es aber nicht mehr :(

W3C validierung schlägt fehl:
W3CValidator hat geschrieben:Error Line 84 column 308: ID "m1" already defined.

...ng=1&client=1">1</a>&nbsp;<a id="m1" class="pageTurning" style="text-deco
ich setze das modul pageturning in der version von stese ein, siehe post und ich bin mir ziemlich sicher, dass es nicht 'im' modul steckt, aber woher kommt das verflixte id="m1" ???

Verfasst: Mi 22. Feb 2006, 11:21
von emergence
sieh dir mal diese klasse an...
-> cInclude("classes","class.htmlelements.php");
und dort suchst du nach
-> setLink
ist vermutlich mehrfach abgeleitet worden... (so richtig schön übersichtlich und einfach zu finden...)

irgendwo dort findet sich etwas mit der id zuweisung...

Verfasst: Mi 22. Feb 2006, 18:15
von mvf
emergence hat geschrieben:sieh dir mal diese klasse an...
-> cInclude("classes","class.htmlelements.php");
und dort suchst du nach
-> setLink
ist vermutlich mehrfach abgeleitet worden... (so richtig schön übersichtlich und einfach zu finden...)

irgendwo dort findet sich etwas mit der id zuweisung...
oh gott emmergence, wahrscheinlich muss ich langsam doch mal schafen
in der class.htmlelements.php finde ich nix dazu,

revidiert :?

Code: Alles auswählen

	/**
	 * advances to the next ID available in the system.
	 * 
	 * This function is useful if you need to use HTML elements
	 * in a loop, but don't want to re-create new objects each time.
	 *
	 * @param $class string Text to set as the "id"
	 */
	function advanceID()
	{
		global $cHTMLIDCount;

		$cHTMLIDCount ++;
		$this->updateAttributes(array ("id" => "m".$cHTMLIDCount));
	}

Verfasst: Mi 22. Feb 2006, 18:25
von stese
das is die funktion

Code: Alles auswählen

function advanceID()
	{
		global $cHTMLIDCount;

		$cHTMLIDCount ++;
		$this->updateAttributes(array ("id" => "m".$cHTMLIDCount));
	}
in selbiger datei die die id setzt

wenn du über die cHTML Api arbeitest, kannst du auch die methode

removeAttribute("id") verwenden um die id komplett zu entfernen.

also bspw.

Code: Alles auswählen

$cField = new cHTMLHiddenField("name","wert");
$cField->removeAttribute("id");
oder aber man setzt die ID schon auf seinen korrekten wert wenn man die klasse initialisiert:

Code: Alles auswählen

$cField = new cHTMLHiddenField("name","wert","meineID");
schau mal im zend ;) der hat so ne autovervollständigen funktion, wo du siehst, welche parameter an die klasse übergeben werden soll.

Verfasst: Mi 22. Feb 2006, 18:29
von mvf
und wie gehe ich jetzt damit um?

Verfasst: Mi 22. Feb 2006, 18:32
von stese
du setzt überall ein

Code: Alles auswählen

$oLink->removeAttribute("id");
vor das $oLink->toHtml()

Verfasst: Mi 22. Feb 2006, 18:38
von mvf
stese hat geschrieben:du setzt überall ein

Code: Alles auswählen

$oLink->removeAttribute("id");
vor das $oLink->toHtml()
stese wie immer fix und kompetent

verbeug und M E R C I