Ik haal 2 random waarden uit m'n database $path (Is het pad naar een afbeelding) en $url (Is Url als er geklikt word op de achtergrond via:

<?php
	$con = mysqli_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"], $_CONFIG["Database"]);
	$select=mysqli_query($con,"SELECT imagepath,url,counter FROM advertisor where isactive=1 ORDER BY RAND() LIMIT 1") or die(mysql_error());
	$a=array();
	while($ol=mysqli_fetch_assoc($select))
	{
$path = $ol["imagepath"];	
$url = $ol["url"];
       }
?>


Ik gebruik jquery.backstretch.js om een beeldvuldende en klikbare achtergrond te maken .

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/danielgindi-jquery-backstretch/2.1.15/jquery.backstretch.js"></script>
<script> 
$.backstretch("afbeelding/foto.jpg");
$(".backstretch").on("click", function () {document.location.href = "http://www.test.nl";});
$(".backstretch").css('cursor', 'pointer');
</script>

Maar ik krijg het maar niet werkend om http://www.test.nl te vervangen door $url en afbeelding/foto.jpg door $path.
Heb al geprobeerd met:

echo '<script>';
echo '$.backstretch("' $path"");';
etc.
etc.

Heb het eens eerder gedaan maar krijg het niet meer werkend.

Gelukkig hebben we ook code-tags voor scripts in het forum. ;-)

Waarom gebruik je een while() { } als je maar één result verwacht?
PHP-variabelen worden niet vervangen door hun inhoud in strings omvat door enkele quotes. Daarbij is het ook verstanding om ofwel de variabele af te bakenen met { accolades } ofwel de variabele content van de statische content te scheiden. Het is ook mogelijk om alles aan elkaar te rijgen (concatenatie) met punten. Dan maakt het in principe niet uit of je enkele of dubbele quotes gebruikt voor de overige delen.

Mijn voorkeur gaat uit naar het scheiden van variabel en statisch. Je kunt namelijk te allen tijde een PHP-blok opschorten of starten. Dit maakt ook beter duidelijk wat verandert en wat hetzelfde is en blijft.

Vergelijk:
<?php
$test = 'hallo';
echo 'lala$testlala'; // levert letterlijk "lala$testlala"
?><br><?php
echo "fafa{$test}fafa"; // levert "fafahallofafa"
?><br><?php
echo 'lala'.$test.'lala'; // concatenatie met enkele quotes
?><br><?php
echo "lala".$test."lala"; // concatenatie met dubbele quotes
?><br><?php
// en het volgende werkt gewoon altijd
?>lala<?php echo $test; ?>lala


Als je dit soort dingen probeert op te lossen is het ook handig om je te ontdoen van alles wat niet direct met het probleem te maken heeft: jQuery, JavaScript, een database-connectie hebben alle niets met het probleem te maken, dit is een pure PHP-aangelegenheid.
@Thomas van den Heuvel, bedankt! Het is de laatste geworden.

Reageren