2016-11-01 3 views
0

Это мой PHP/JS код:PHP JavaScript эхо не будет работать

echo "<script> 
function transformCard() { 
document.getElementById('cardImage').src = " . $row['transformedimageurl'] . " 
document.getElementById('transformbtn').onClick = deformCard(); 
} 
function deformCard() { 
document.getElementById('cardImage').src = " . $row['imageurl'] . " 
document.getElementById('transformbtn').onClick = transformCard() 
} 
</script>"; 

Мой HTML:

<button id="transformbtn" onClick="transformCard()"></button> 
<img id='cardImage' src="image.jpg" /> 

Кнопка нажмите не изменяет src моего образа.

Что случилось с моим кодом?

+1

Открыть консоль разработчиков. Что вы там видите? Неожиданный маркер? –

+0

ничего, если я не нажму кнопку, тогда он говорит >> Максимальный размер стека вызовов превышен – AMG

ответ

0

Поместите src в кавычки:

echo "<script> 
    function transformCard() { 
    document.getElementById('cardImage').src = '" . $row['transformedimageurl'] . "'; 
    document.getElementById('transformbtn').onClick = deformCard(); 
} 
function deformCard() { 
    document.getElementById('cardImage').src = '" . $row['imageurl'] . "'; 
    document.getElementById('transformbtn').onClick = transformCard() 
} 
</script>"; 

Вы также, вероятно, хотите, чтобы удалить () на onClick обработчика:

document.getElementById('transformbtn').onClick = deformCard; 
document.getElementById('transformbtn').onClick = transformCard; 
+0

Он по-прежнему говорит, что максимальный размер стека вызовов превышен – AMG

+0

теперь в консоли он не дает никаких ошибок, но '' – AMG

+0

@AMG Возможно бесконечный цикл (функции называют друг друга). Откройте инструменты разработчика, перейдите на вкладку «Источник» и добавьте точки останова в первую строку каждой функции. Затем нажмите кнопку воспроизведения, чтобы увидеть, как происходит поток. –