ahref

Der_Amateur

Cadet 1st Year
Registriert
Dez. 2017
Beiträge
13
hallo zusammen,

ich weiss nicht wie ich eine url flexibel in href einbauen kann. hier mein versuch:

<?php
if {
...
$link = '';
} else {
...
$link = 'http://www.google.de';
}
?>

<a href=".$link" target="_blank">
<?php
...
?>
</a>


kann mir jemand einen tipp geben?
 
Das "echo" kann übrigens ersetzt werden mit der Kurzform:

Code:
<?php echo $a; ?>
kann ersetzt werden durch
Code:
<?= $a; ?>

(immer aktiviert ab PHP Version >= 5.4.0)
 
hallo zusammen,

danke für die antworten. das funktioniert so leider nicht.

in der datei index.php habe ich mehrere php-bausteine.

im "head" habe ich mit style (css) noch a:hover und a:link beschrieben. wenn ich mit der maus drüberfahre, mouseover, bekomme ich einen gewollten text angezeigt. nun möchte ich, abhängig von einer variablen, einen link bzw. keinen link durch href ermöglichen.
bisher tut auch alles, nur lässt sich eben die variable $link nicht in href aufrufen. href hab ich ja im head wie gesagt noch bzgl mouseover formatierungen mitgegeben. nur rufe ich href eben nicht innerhalb vom php-script auf. das php script innerhalb von href macht wiederum abfragen und gibt mir am ende je nach ergebnis einen andern zustand aus. ziel ist es zusätzlich zum mouseover noch einen variablen link mitzugeben! Wenn ich mit der maus im browser drüberfahre, zeigt mir die statuszeile im browser "$link" an statt das gewünschte ziel.

mit echo innerhalb php kann ich also nicht arbeiten.

lässt sich das überhaupt realisieren?

der amateur

so hat es doch funktioniert:
<a href="<?php echo $link; ?>" target="_blank">
das problem saß vorm computer!!

danke!!!
Ergänzung ()

hallo zusammen,

jetzt habe ich doch noch mal fragen zu href:

1. wenn ich die variable
$link = '';
setze, verlinkt mir das, obwohl kein link eingetragen ist, automatisch auf die aktuelle seite. gibt es eine möglichkeit den link durch die variable zu deaktivieren, sprich das href dann gar nicht mehr wirksam ist, oder muss ich da immer irgendein ziel angeben?

2. wenn ich mit der maus über den link fahre, zeigt mir das im firefox unten links in der statuszeile das ziel an. lässt sich das ausschalten? ich meine damit nicht im firefox selber sondern über programmiercode. will das ziel nicht so offensichtlich anzeigen lassen.

der amateur
 
Zuletzt bearbeitet:
Der_Amateur schrieb:
1. ... gibt es eine möglichkeit den link durch die variable zu deaktivieren
Dann musst du, für den Fall, dass $link leer ist, den Link komplett entfernen; also bspw. nur den Linktext ausgeben. Also grob:
PHP:
if($link=="") { echo "Text ohne Link"; } else { echo "<a href=...>Text</a>"; }
2. wenn ich mit der maus über den link fahre, zeigt mir das im firefox unten links in der statuszeile das ziel an. lässt sich das ausschalten?
Per Javascript - aber wieso verheimlichen? Ich als Besucher würde solche Links nicht anklicken.
 
hallo,

echo kann ich nicht benutzen, da ahref ja ausserhalb von <?php ?> steht, sprich dieses ja einbindet. das php-script an sich spuckt ja letztlich einen formatierten text aus der durch href, je nach ergebnis vom script, mal verlinkt sein soll oder nicht.
so sieht es gerade aus:

<a href="<?php echo $url;?>" target="_blank" style="text-decoration: none; cursor: context-menu">
<?php
(hier wird eine formatierte ausgabe erzeugt die ich mit (a) und href beim überfahren der maus entweder verlinke oder nicht)
?>

</a>


somit funktioniert das mit dem echo nicht, oder sehe ich das falsch? genauso mit der if-abfrage?!

der amateur
 
Du kannst PHP Blöcke hinschreiben wo Du möchtest, zB alles am Anfang der Datei in PHP berechnen, in Variablen speichern, dann das HTML schreiben und in kleinen PHP Blöcken die Ergebnisse ausgeben lassen.

Man könnte Dir evtl. besser weiterhelfen wenn Du Deinen Code mal komplett postest...
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Abfrage</title>
<link href="screen.css" rel="stylesheet" type="text/css">
<style>
div#ausgabe {
position: absolute;
display: block;
font-size:11px;
top: -44px;
left: 70px;
border:1px solid #000;
background-color:#eeeeee;
}
a:hover + div#ausgabe {
display: block;
}​
a:link + div#ausgabe {
}
</style>
</head>

<?php
//Onlineabfrage Server
if (...){
$online = 0;
$url = '';
} else {
$online = 1;
$url = 'www.google.de';
}
//Onlineabfrage Server Ende
?>

<a href="<?php echo $url;?>" target="_blank" style="text-decoration: none; cursor: context-menu">
<?php
//Onlineaausgabe Server
...
//Onlineausgabe Server Ende
?>
</a>

<div id="ausgabe"><b>Hinweis</b></div>

</html>
 
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Abfrage</title>
<link href="screen.css" rel="stylesheet" type="text/css">
<style>
div#ausgabe {
position: absolute;
display: block;
font-size:11px;
top: -44px;
left: 70px;
border:1px solid #000;
background-color:#eeeeee;
}
a:hover + div#ausgabe {
display: block;
}​
a:link + div#ausgabe {
}
</style>
</head>

<?php
//Onlineabfrage Server
if (...){
$online = 0;
$url = '';
} else {
$online = 1;
$url = 'www.google.de';
}
//Onlineabfrage Server Ende
?>


<?php
//Onlineaausgabe Server
if ($online==1)
{
  echo „<a href=\““ . $url . „\“>Text</a>“;
}
//Onlineausgabe Server Ende
?>
</a>

<div id="ausgabe"><b>Hinweis</b></div>

</html>

So ungefähr sollte es doch gehen. Mit dem Handy getippt deswegen keine Gewähr. :)
 
Zuletzt bearbeitet:
hallo Drexel,

das funktioniert so nicht, der php-code innerhalb der "onlineausgabe server" wird so nicht angezeigt.
innerhalb dieses php-blocks wird mir eine farblich formatierte ausgabe erzeugt. auf diese soll sich href beziehen, nicht auf den ">Text</a>".
ich will damit sagen dass innerhalb diesen php-blocks je nach bedingungen ein farblicher text erzeugt wird den ich dann ausgeben lasse. auf diese ausgabe soll sich das href beziehen.


<?php
//Onlineaausgabe Server
if ($online==1)
{
echo „<a href=\““ . $url . „\“>Text</a>“;

if...
echo '<span style="font-size:11px; color:'.$color_off.'; background-color:'.$hintergrundfarbe.'">offline</span>';
...
echo '<span style="font-size:11px; color:'.$color_error.'; background-color:'.$hintergrundfarbe.'">standby</span>';
... usw...

}
//Onlineausgabe Server Ende
?>
 
Zuletzt bearbeitet:
hallo zusammen,

hat keiner mehr ne idee oder stell ich mich wieder zu doof an?
wenn ich den letzten vorschlag umsetze wird mir nur das echo mit dem text ausgegeben, der restliche oho-inhalt wird gar nicht abgezeigt.
 
Dann entferne einfach das 'Text</a>' und mach ein echo "</a>"; nach dem eingefärbten php-block? Oder verstehe ich das falsch?
 
Ich versteh Dein Problem auch nicht so ganz:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Abfrage</title>
<link href="screen.css" rel="stylesheet" type="text/css">
<style>
div#ausgabe {
position: absolute;
display: block;
font-size:11px;
top: -44px;
left: 70px;
border:1px solid #000;
background-color:#eeeeee;
}
a:hover + div#ausgabe {
display: block;
}​
a:link + div#ausgabe {
}
</style>
</head>
 
<?php
//Onlineabfrage Server
if (...){
$online = 0;
$url = '';
} elseif (...) {
$online = 1;
$url = 'www.google.de';
}elseif (...) {
$online = 2;
}
...
//Onlineabfrage Server Ende
?>
 
 
<?php
//Onlineaausgabe Server
if ($online == 0)
{
echo '<span style="font-size:11px; color:'.$color_off.'; background-color:'.$hintergrundfarbe.'">offline</span>'; 
}
if ($online == 1)
{
echo '<span style="font-size:11px; color:'.$color_error.'; background-color:'.$hintergrundfarbe.'">standby</span>'; 
}
if ($online == 2)
{
echo '...'; 
}
... usw...
//Onlineausgabe Server Ende
?>
</a>
 
<div id="ausgabe"><b>Hinweis</b></div>
 
</html>

Wenn Du irgendwelche Ausgaben unabhängig von der online Variable machen möchtest, weil Die nur 0 und 1 für on und offline enthalten soll, musst Du halt noch eine zweite Variable anlegen, die sich einen Status merkt und abhängig davon die farblichen Ausgaben machen.
 
Zuletzt bearbeitet:
hallo,

wen ich das so eingebe:

echo „<a href=\““ . $url . „\“>
<?php
//Onlineaausgabe Server
HIER BEFINDET SICH EIN PHP-CODE!!!
NICHT NUR MIT EINER VARIABLEN SONDERN MEHRERE!
ES WERDEN MEHRERE ZUSTÄNDE ABGEFRAGT. DIE AUSGABE DES CODES IST ABER DIESE:

echo '<span style="font-size:11px; color:'.$color_error.'; background-color:'.$hintergrundfarbe.'">Ausgabetext</span>';

DIE AUSGABE ÄNDERT SICH JE NACH WOCHENTAG; ONLINESTATUS ETC. ABER: NUR WAS HIER ALS TEXTFARBE (color) DECLARIERT IST ÄNDERT SICH VON ROT AUF GRUEN, AUF BLAU ETC!
//Onlineausgabe Server Ende
?>
</a>";"

funktioniert hier eventuel include? wenn ich den inhalt von php in eine separate datei schreibe, etwa so?

echo „<a href=\““ . $url . „\“><?PHP include 'script.php';?></a>“;
 
Das echo "<a href="" . $url . ""> muss natürlich mit in den PHP-Teil, also nach <?php.

Und pass mal bei den Anführungszeichen auf; in deinem Text hast du andere - ich weiß nicht, in wiefern das Probleme macht:

Dein Code: „<a href=\““ . $url . „\“>
Mein Code: "<a href="" . $url . "">


Mit include kannst du natürlich arbeiten, aber ich sehe immer noch nicht, was genau bei dir nicht geht. Soweit ich das sehe, hat dein Problem zumindest nichts mit include zu tun ;)
 
Ne dann check ich es immer noch nicht, Du hast die Farbe doch in einer Variable, die belegst Du nach welcher Logik auch immer und dann hat der text doch eine andere Farbe...

Code:
$color_error = "red";
echo '<span style="font-size:11px; color:'.$color_error.'; background-color:'.$hintergrundfarbe.'">Ausgabetext</span>';
$color_error = "#F0F8FF";
echo '<span style="font-size:11px; color:'.$color_error.'; background-color:'.$hintergrundfarbe.'">Ausgabetext</span>';
Das bewirkt doch unterschiedliche Farben.

Kannst auch sowas machen wie:

Code:
$color_error = "red";
echo '<span style="font-size:11px; color:';
if ()
{
echo $color_error;
}
else
{
echo "#F0F8FF";
}
echo '; background-color:'.$hintergrundfarbe.'">Ausgabetext</span>';

Du kannst einfach alles steuern und programmieren, welcher Text wann ausgeben werden soll, wo welche Farbe hin soll etc. Die Logik dafür kennst aber nur Du.
 
Zurück
Oben