2016-11-10 8 views
0

ich dieses kleine Skript, das ein zufälliges Bild zeigt, das ist:Echo ALT-Attribut zufälliges Bild

<img src="<?php echo bloginfo('template_url');?>/img/members/00<?php $random = rand(1,7); echo $random; ?>.jpg"alt="[ Random Image ]"> 

Dies macht das Bild src src="example.com/images/001.jpg" alt="[ Random Image ]"> die (1,7) im Skript die Anzahl der Adds Bild 001.jpg zu 007.jpg.

Nun, was ich möchte, ist die "[ Random Image ]" in "$my_alt" zu ändern und es zeigen (Echo) das Alt-Attribut des Bildes in einem <h2 class="myAlt">...</h2> Tag.

Ich bin nicht der eines Coders, also weiß ich nicht wirklich, wie man das macht. Ich glaube ich müsste zuerst my_alt einen Wert geben. So würde ich gehen durch:

if {image src="example.com/images/001.jpg" $my_alt = "My first Alt"} else if {image src="example.com/images/002.jpg" $my_alt = "My second Alt"}

und dann, wo ich den Wert des alt wollen Sie den Code platziert werden hinzufügen: <h2 class="myAlt"><?php echo $my_alt(); ?></h2>

Bin ich diese richtig zu tun, dann ist dies der richtige Weg gehen? Wie ich schon sagte, bin ich beim Codieren nicht so gut, also danke für die Hilfe.

Antwort

1

habe ich Ihr Problem. Versuchen Sie dies, um zu sehen, ob es funktioniert:

<!-- I am gonna make a sample template so that you may understand how to use my solution for your specific issue --> 
<div class="imageContainer"> 
    <img src="something" alt="Image1" /> 
    <h2 class="myAlt"></h2> 
</div> 
<div class="imageContainer"> 
    <img src="something" alt="Image2" /> 
    <h2 class="myAlt"></h2> 
</div> 
<div class="imageContainer"> 
    <img src="something" alt="Image3" /> 
    <h2 class="myAlt"></h2> 
</div> 
<div class="imageContainer"> 
    <img src="something" alt="Image4" /> 
    <h2 class="myAlt"></h2> 
</div> 

<script> 
$('.imageContainer').each(function(){ 
    $(this).find('.myAlt').html($(this).find('img').attr('alt')); 
}); 
</script> 

Es wird die jeweilige alt unter jedem Bild zeigen.

für insbesondere zwei Bilder

// giving alt dynimically 
    $('img').each(function(){ 
     if($(this).attr('src')==='image 001.jpg'){ 
      $(this).attr('alt','person x'); 
     } 
     else if($(this).attr('src')==='image 002.jpg'){ 
      $(this).attr('alt','person y'); 
     } 
    }); 

seine nur eine Idee, müssen Sie es ändern, Ihr Problem zu entsprechen. Viel Glück. Ich hoffe es hilft

+0

Danke! Die Bilder zeigen das Gesicht einer Person. Ich möchte dort Namen unter den Bildern in einem 'H2'-Tag hinzufügen (ich vermutete, dass die Verwendung des ALT die beste Option war). Ich hoffe, dass klärt die Dinge ein wenig auf ... – Steggie

+0

Ich aktualisierte die Antwort, ich hoffe, Sie können es für Ihre Bedingung verwenden. Versuchen Sie es und sagen Sie mir, ob es irgendwelche Probleme gibt. – Learner

+0

Dies zeigt jedes Mal ein zufälliges Bild an, wenn Sie eine Aktualisierung durchführen? – Steggie

0

Ich würde ein Array mit allen Bildern und deren alt s erstellen, dann wählen Sie eine von ihnen und es zeigen:

<?php 
$images = [ 
    ['file' => '001.jpg', 'alt' => 'My first alt'], 
    ['file' => '002.jpg', 'alt' => 'My second alt'], 
    ['file' => '003.jpg', 'alt' => 'My third alt'], 
    # add more files below 
]; 
$rand = mt_rand(0, count($images) - 1); 
?><img src="<?php echo bloginfo('template_url');?>/img/members/<?php echo $images[$rand]['file']; ?>" alt="<?php echo $images[$rand]['alt']; ?>"> 
+0

Danke für die schnelle Antwort, aber sind Sie sicher, dass dieser Code korrekt ist? Wenn ich es auf meiner Seite hinzufüge bricht es (leerer Bildschirm ...) – Steggie

+0

@Steggiee: Versuchen Sie es jetzt, ich habe fehlende Semikolons zum Code hinzugefügt. Außerdem könnte es ein Problem geben, wenn Sie mit einer alten Version von PHP (5.3 oder älter) arbeiten, da diese keine kurze Arraysyntax unterstützt. –

+0

Immer noch einen leeren Bildschirm. Ich könnte diesen Code überall richtig platzieren? Auch wenn ich meine jQuery in meiner Fußzeile lade. Das sollte für PHP wichtig sein, oder? Ich habe überprüft und mein Server läuft PHP Version 5.3.29. Ich kann das nicht ändern ... mein Hosting-Provider macht das nicht ... Ist das ein echtes Problem? – Steggie

Verwandte Themen