Я пытаюсь отобразить информацию моего изображения динамически в атрибуте data-caption для fancybox3.Это довольно долго, и я не уверен, как это изменить, так что это не отвратительно.Конкретная проблема заключается в том, что когда он получает информацию из базы данных mysql, которая может содержать специальные символы, такие как 'или', заголовок данных думает, что он закрывается, когда это не то, что я хотел бы.
IЯ пытался разделить очень длинный оператор echo на несколько, но это ничего не изменило. Я пытался добавить строки для заголовка данных как таковые, ". $ var.", но это не сработало. Я пытался использовать mysqli_real_escape () во времяобъявления переменных, и это не меняет функциональности при попытке вывести информацию о базе данных.
<table style="margin:1em auto;">
<?php
// require_once('DB_connection.php');
$j = 0;
while ($fetch_all_posts = mysqli_fetch_assoc($all_posts)) {
if ($j % 3 == 0) {
echo "<tr>";
}
$getUser = $fetch_all_posts['userName'];
$getPostID = $fetch_all_posts['postID'];
$getDateUploaded = $fetch_all_posts['dateUploaded'];
$getImg = $fetch_all_posts['img']; //dont really need
$getLocation = mysqli_real_escape_string($connection,$fetch_all_posts['location']);
$getCaption = mysqli_real_escape_string($connection,$fetch_all_posts['caption']);
$getImageMetadata = mysqli_real_escape_string($connection,$fetch_all_posts['imageMetadata']);
$getCameraGearPost = mysqli_real_escape_string($connection,$fetch_all_posts['cameraGearPost']);
$getPhotoEdit = mysqli_real_escape_string($connection,$fetch_all_posts['photoEdit']);
$getCopyright = mysqli_real_escape_string($connection,$fetch_all_posts['copyright']);
//grab user profile pic from user table
$sql_profilePic = "SELECT * FROM $dbtableUser WHERE userName = '$getUser' ";
$all_users = mysqli_query($connection, $sql_profilePic);
$fetch_all_users = mysqli_fetch_assoc($all_users);
//change data caption's userName link also incorrectly interprets ' " for datacaption
echo "<td><br/><br/><br/><br/><a data-fancybox='images' data-caption= '<h1><a href=Profile.php><img id=profpic src=$fetch_all_users[profilePic] height=auto width=100px> $getUser</a></h1> <br/> <h5>@$getLocation</h5> <hr/> <br/> <h5>$getCaption</h5> <br/> <h5>$getImageMetadata</h5> <br/> <h5>$getCameraGearPost</h5> <br/><h5>$getPhotoEdit<h5> <br/><br/><br/> <h6>PostID: $getPostID </h6> <br/>Copyrighted: $getCopyright <br/> $getDateUploaded <br/>' href ='$getImg'> <img id=postPics src='$getImg' alt='$getCaption'</a> </td>";
if ($j % 3 == 2) {
echo "</tr>";
}
$j++;
}
?>
</table>
Я ожидаю, что при щелчке изображения оно соответствующим образом отображает заголовок данных со специальными символами.
эта ссылка, https://ibb.co/QK3Nkfw, показывает, как выглядит страница в данный момент, проблема с первым изображением, и я хочу, чтобы она была такой же, как и у остальных. При нажатии на изображение должны отображаться данные, подобные этим: https://ibb.co/qnTJYf3