У меня есть класс php, который устанавливает значения и обновляет их. Я использую методы getters для доступа к этим переменным из функции javascript и показываю их на экране. Моя проблема в том, что когда я запускаю этот код javascript, мои вары отображаются всегда с первыми значениями, которые они получают. Я проверил их, и они обновлены, когда я вызываю myCreateFunction();
, но похоже, что эта функция запускается до обновления php vars. Я новичок в javascript, и некоторая помощь будет оценена, спасибо!php vars обновляются, но функция javascript показывает всегда первое значение
<?php
class TableRows {
public $offerId = 0;
public function setOfferId(){
$this->offerId ++;
}
public function getOfferId(){
$this->offerId;
}
}
$tb = new TableRows();
?>
<script>
function myCreateFunction(string) {
var offerId = '<tr><th>'+<?php echo json_encode($tb->getOfferId()); ?>+'</th></tr>';
var table = document.getElementById("myTable");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
cell1.innerHTML = offerId;
}
</script>
<script>
myCreateFunction();
</script>
<?php
$tb->setOfferId();
?>
<script>
myCreateFunction()
</script>
php - препроцессор страницы html ... он создает страницу и выплевывает ее в ваш браузер ... нет двухсторонней связи, как вы думаете, что вы делаете ... '$ tb-> setOfferId() ; '- это приведет к числу в javascript, функция будет запущена до того, как страница будет загружена ... посмотрите на источник страницы в вашем браузере, чтобы увидеть, что я имею в виду. –
Php can not управляет кодом на уровень клиентской стороны. Вам нужно обрабатывать переменные и изменять их в Javascript. – Dom