Überprüfen, ob DIV ID existiert, dann etwas anzeigen

Senfgeist

Lt. Commander
Dabei seit
März 2007
Beiträge
1.083
Hi,

ich suche nach einer Möglichkeit, zu überprüfen, ob auf einer Seite ein DIV mit der ID #beispiel existiert. Wenn diese ID NICHT existiert, dann soll "echo gruppe(123);" dargestellt werden.

Ich habe im Netz recherchiert und kam zu keiner funktionierenden Lösung. Vielleicht habe ich es aber schlichtweg falsch gemacht bisher.

Ich möchte also um das "echo gruppe(123);" herum eine Bedingung bauen, die überprüft, ob die ID #beispiel exisitert und falls nicht, wird eben "echo gruppe(123);" ausgegeben.

Hat jemand eine Idee?

Gruß
 

SymA

Captain
Dabei seit
Apr. 2006
Beiträge
3.346
Abgesehen von der Sprache die du benutzten möchtest:
Nachdem es sich um ein DIV handelt, nehme ich an du möchtest im HTML bzw. DOM prüfen ob dieses Element existiert -> dafür benutzt du JavaScript.
Für sowas gibt es Bedingungen in allen Programmiersprachen....
 

Senfgeist

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
1.083
Wie ich inzwischen rausgefunden habe, ist das mit JS oder so nicht möglich, außer ich definiere ein display:none; was eben entweder so belassen oder per JS aufgehoben wird. Das kommt aber nicht in Frage: Wenn das entsprechende Objekt NICHT dargestellt werden soll, soll es nicht nur per CSS versteckt sein, sondern tatsächlich überhaupt nicht geladen werden.

Also müsste ich an der Stelle, wo die ID steht eine PHP Variable festlegen und diese dann an anderer Stelle auf ihre Existenz prüfen - richtig?
 

SymA

Captain
Dabei seit
Apr. 2006
Beiträge
3.346
Kann man über PHP machen oder mit JavaScript - ich glaube jedoch dass dir essentielle Grundkenntnisse in diesem Bereich fehlen...
Ich würde es mit JS machen und dann prüfen ob es das entsprechende CSS Attribut gibt falls das Div existiert...
 

DasBoeseLebt

Lieutenant
Dabei seit
Jan. 2010
Beiträge
686
Du suchst nach dem Element auf der Seite mit Javascript, wenn das nicht gefunden werden kann, dann existiert es auch nicht.

Dazu kannst du die Methode getElementById() benutzen, also z.b. so document.getElementById("DEINDIV").
Wenn es nicht existiert, dann kommt da null zurück, ansonsten das Element. (Also auf === null bzw. !== null prüfen)

Wenn das Element existiert, dann kann man auch sogar überprüfen, ob es sichtbar ist.
Oder was willst du? =O
 

Senfgeist

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
1.083
Ich möchte es gerade so machen, dass ich eine PHP Variable setze und an der anderen Stelle überprüfe, ob diese Variable gesetzt ist. Wenn NICHT, dann soll etwas ausgeführt werden.

Habe an einer Stelle $beispielvariable = 1; gesetzt und später per if (isset(!$beispielvariable)){ do something } überprüft. Klappt aber leider nicht, wie ich es möchte - über Kenntnissstände möchte ich nicht diskutieren, daher stelle ich ja eine Frage. Würde ich die Lösung kennen, bräuchte ich nicht fragen :-)
 

SymA

Captain
Dabei seit
Apr. 2006
Beiträge
3.346
Wie wärs mit Code posten wenn du schon was hast? Gut dass wir nun wissen, dass es um PHP geht...
 

Lawnmower

Fleet Admiral
Dabei seit
Mai 2011
Beiträge
11.863
Vielleicht erklärst Du es genauer: Was soll danach denn ausgeführt werden? Clientseitiger oder serverseitiger Code? Javascript oder PHP?

Beispiel: Mit PHP (serverseitig) aufrufen und mit Javascript (clientseitig) prüfen ob Element existiert. Die Lösung hängt stark davon ab was Du mit dieser Handlung bezweckst bzw wie der weitere Verlauf ist. Es bringt ja nix wenn Du für das weitere Verfahren PHP brauchst aber die Validierung mit Javascript machst (geht schon aber vermutlich gehts auch eleganter).
 
Zuletzt bearbeitet:

Senfgeist

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
1.083
Es ging zuerst um JavaScript, habe in der Zwischenzeit aber erfahren, dass es so wie ich es plane nicht möglich ist.

Mensch, schreibt doch bitte mal ein wenig netter, selbst wenn der Fragesteller kein PHP-Crack ist... dafür sind Foren da.

Das ist der Code:

if (empty($beispielvariable))
{
echo gruppe(123);
}

So ist der aktuelle Stand. An anderer Stelle habe ich $beispielvariable = 1; gesetzt. Leider klappt es noch nicht so wie ich es möchte. Das "echo gruppe(123)" soll NUR ausgegeben werde, wenn eben KEIN Wert gesetzt ist (somit $beispielvariable gar nicht existiert).
Ergänzung ()

Danke trotzdem für die Zeit.
Ergänzung ()

Ok, also kann ich mit keiner Antwort mehr rechnen. Klasse!
 
Zuletzt bearbeitet:

WhiteShark

Admiral
Dabei seit
Mai 2002
Beiträge
9.907
Es ist bereits nach 23 Uhr. Viele schlafen da schon.

Dein Script prüft ob die variable leer ist. Leer kann sein das sie den Wert 0 hat, ein leeres Array enthält oder nicht existiert.
Ist sie auf 1 gesetzt, dann sollte er das echo nicht ausführen.

Du kannst auch vor der if mal mit var_dump($beispielvariable) prüfen ob die variable wirklich Leer ist.
 

SymA

Captain
Dabei seit
Apr. 2006
Beiträge
3.346
In deinem Fall würde aber echo gruppe(123) eine Funktion aufrufen mit dem Namen gruppe und als Parameter würde diese 123 als Integer erhalten.
Dir sollte klar sein, dass hier nicht im sekundentakt geantwortet wird auf solche banalen Fragen....
Falls du einfach nur gruppe ausgeben möchtest dann solltest du auch echo 'gruppe(123)'; entsprechend ausführen lassen!
 

Daaron

Fleet Admiral
Dabei seit
Dez. 2011
Beiträge
13.487
Wie wäre es denn, wenn du mal PRÄZISE erläutern würdest, was du eigentlich bezweckst? Irgendwie springst du hier wild zwischen den Ansätzen, verzettelst dich hinten und vorne,...

Übrigens: empty() würd ich nicht verwenden. empty() auf eine nicht gesetzte Variable dürfte, wenn ich mich recht erinnere, eine Warnung im Log hinterlassen. Arbeite lieber mit isset() (und logischen Operatoren)
 

Senfgeist

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
1.083
Alles klar, nochmals im Überblick - auch wenn es ach-so-banal ist für Leute, die nichts Anderes machen als mit PHP zu arbeiten (ich beispielsweise nicht, daher ist es für mich nicht banal - danke):

Ich habe jetzt alles Mögliche ausprobiert, ich arbeite mit Wordpress. In der shortcodes.php kann ich Shortcodes definieren. So sah die ursprüngliche Funktion aus, ganz simpel und auch korrekt:

function beispielshortcode($atts, $content = null) {
$beispielwert = 1;
return gruppe(123);
}
add_shortcode('beispielshortcode', 'beispielshortcode');

Mit [beispielshortcode] kann ich dann in jedem Artikel ganz einfach die gruppe(123) anzeigen lassen (einen Werbeblock). Funktioniert einwandfrei.

Auf der Artikelseite möchte ich nun prüfen, ob $beispielwert existiert. Wenn dieser NICHT existiert, dann soll ein anderer Werbeblock angezeigt werden:

if (!isset($beispielwert))
{
echo gruppe(888);
}
else { }

Das klappt aber irgendwie gar nicht und ich bekomme es schlichtweg nicht zum Laufen. Hintergrund ist der: Wenn ich innerhalb eines Textes eines Artikels eine Werbung platziere (über den Shortcode), dann soll die Werbung am ENDE eines Artikels NICHT angezeigt werden. Wenn ich innerhalb des Textes eines Artikels KEINE Werbung anzeige, soll die Werbung unterhalb des Artikels aber angezeigt werden.

Wie mache ich das?
 

Daaron

Fleet Admiral
Dabei seit
Dez. 2011
Beiträge
13.487
Es kann schlicht und ergreifend sein, dass da, wo du $beispielwert auslesen willst, diese Variable gar nicht mehr existiert. Variable Scope heißt das Schlüsselwort.

Also: Entweder alles umhacken und auf Globals setzen, oder aber ne bessere Lösung suchen... bzw. ein besseres CMS. Wordpress ist Pfui Deibel.
 

Senfgeist

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
1.083
Wordpress ist Klasse und ich habe damit eine sehr gute Site auf die Beine gestellt. Da werde ich garantiert nicht wechseln, da es keinen Grund gibt.

Wie kann ich den oben genannten Code denn anpassen, damit es funktioniert? Wie muss er aussehen?
Ergänzung ()

UPDATE: Habe es selbst hinbekommen. Da es so "banal" ist, muss ich es an dieser Stelle die Lösung wahrscheinlich nicht erklären. Danke trotzdem.
 

Daaron

Fleet Admiral
Dabei seit
Dez. 2011
Beiträge
13.487
Was dem CB-Forum wirklich fehlt ist eine Douchebag-Liste, auf die man Leute setzen kann, bei denen man ab jetzt keinen Finger mehr rühren sollte.
 

Senfgeist

Lt. Commander
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
1.083
Achja, und warum das? Mir wurde sofort unter die Nase gehalten, wie "banal" meine Anfrage sei, Zitat:

Dir sollte klar sein, dass hier nicht im sekundentakt geantwortet wird auf solche banalen Fragen....
Wenn es so banal ist, warum soll ich dann detailliert erklären, wie ich mein banales Ziel erreicht habe?
 

Lawnmower

Fleet Admiral
Dabei seit
Mai 2011
Beiträge
11.863
bin ich auch dafür, sozusagen ein Like und ein Unlike Button (Reputation Liste)

Wenn es so banal ist, warum soll ich dann detailliert erklären, wie ich mein banales Ziel erreicht habe?
weil das ein Forum ist, da wird die Lösung geteilt genauso wie man versucht hat Dir uneigennützig zu helfen, Du tust so als werden wir von Dir bezahlt. Deine Beiträge waren übrigens praktisch nie transparent (für Dich vielleicht aber uns fehlte das nötige Background-Wissen in welcher "Umgebung" das eingesetzt werden soll), man hatte z.B. am Anfang keine Ahnung von was Du redest, hättest Du gleich gesagt Wordpress, Javascript, PHP dann wäre das ganze wesentlich produktiver ausgefallen. Du kannst keine eindeutige Antworten erwarten wenn Du keine eindeutige Fragen stellst.
 
Zuletzt bearbeitet:
Top