[英]Undefined variable from php to js
我有一個循環發布數據庫中的圖像。 我試圖給每個照片div單獨的ID。 當我嘗試通過onclick函數將其發送到腳本時,它表明“ $ photoid未定義”,我試圖在此第一個php腳本中打印此變量,但它顯示了所有ID,因此不應為空或未定義...
$allphotos = mysql_query("SELECT * FROM photos ORDER BY id DESC");
while ($numphotos = mysql_fetch_assoc($allphotos)){
$photoinfo = mysql_query('SELECT * FROM photos WHERE link="'.$numphotos['link'].'" ');
$fetchinfo = mysql_fetch_assoc($photoinfo);
$photoid = $fetchinfo['id'];
echo '<div class="thisphotobox" id="'.$photoid.'"><img src="'.$numphotos['link'].'" alt="photo" class="photolink" onclick=clicked($photoid)></div>';
}
腳本如下:
<script>
function clicked(photoid){
document.getElementById('photoid').style.backgroundColor = 'red'
}
</script>
更改此:
echo '<div class="thisphotobox" id="'.$photoid.'"><img src="'.$numphotos['link'].'" alt="photo" class="photolink" onclick=clicked($photoid)></div>';
對此:
echo '<div class="thisphotobox" id="'.$photoid.'"><img src="'.$numphotos['link'].'" alt="photo" class="photolink" onclick="clicked('.$photoid.');"></div>';
否則,輸出僅是clicked($photoid)
,即所有文本。
同時更改:
function clicked(photoid){
document.getElementById('photoid').style.backgroundColor = 'red'
}
對此:
function clicked(photoid){
document.getElementById( photoid.toString() ).style.backgroundColor = 'red';
}
上面的答案有效,但是他們忘了添加一些東西,
代替
echo '<div class="thisphotobox" id="'.$photoid.'"><img src="'.$numphotos['link'].'" alt="photo" class="photolink" onclick="clicked('.$photoid.');"></div>';
復制此代碼
echo '<div class="thisphotobox" id="'.$photoid.'"><img src="'.$numphotos['link'].'" alt="photo" class="photolink" style="background-color:white" onclick="clicked('.$photoid.');"></div>';
添加style="background-color:white;"
我認為,如果未在div中初始化.style,則無法在js中訪問。 希望這會有所幫助
這只是一個逃避的問題。 如果是字符串,則必須對已回顯的函數中的參數$ photoid進行轉義。 在上面的代碼中:
onclick=clicked($photoid)
應該
onclick="clicked($photoid)"
如果$ photoid是數字或
onclick="clicked(\'$photoid\')"
如果是字母數字或字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.