Могу ли я использовать document.getElementById.write(); написать внутри heredoc?

Я хочу, чтобы иметь возможность редактировать что-то внутри синтаксиса heredoc. Что-то вроде этого:

index.php:

$var = <<
 Message

 
HTML;
...
$form = $var;

ЯШ:

EDIT: Моя цель - нажать кнопку, чтобы перейти на новую страницу, но кнопка не будет присутствовать, пока вы не нажмете OK во всплывающем окне JS confirm().

2 ответа

То, что вы пытаетесь сделать (изменить HEREDOC), невозможно.

PHP интерпретируется на сервере, а результатом является HTML файл с некоторым встроенным JS. Только после того, как этот HTML файл попадает на клиент и интерпретируется, выполняется JS. На данный момент исходный PHP файл, содержащий HEREDOC, давно ушел.

Однако вы можете манипулировать DOM на стороне клиента, но вы должны искать element.innerHTML в качестве альтернативы document.write.


Если я правильно понимаю, вы хотели бы иметь кнопку, которая становится видимой после некоторого действия пользователя. Я бы предложил создать скрытую кнопку, а затем отобразить ее через JS, вместо того, чтобы создавать ее через JS.

Таким образом, ваш HTML становится:

$var = <<
 Message
 <!-- Note the *style* attribute -->
  
 
HTML;

И затем в вашем JS вы нажимаете кнопку, как только ваш вызов confirm() успешным:

function someJsHandler() {
 if (confirm("Your message here")) {
 var button = document.getElementById('submitBtn');
 button.style.display = 'block'; // Makes the button visible
 }
}

Изменить: JsFiddle для этого: http://jsfiddle.net/bQ6Un/

licensed under cc by-sa 3.0 with attribution.