Определение переменных PHP после определенной части кода HTML (ECHO) - PullRequest
0 голосов
/ 09 октября 2011

на данный момент мне тяжело с HTML, PHP и Javascript! Я пытаюсь изучать эти три языка сценариев одновременно, но есть некоторые проблемы, которые я не могу решить самостоятельно.

Моя проблема заключается в следующем: я закодировал файл PHP. Код в нем выглядит так

<?php
$variable1=300;
$variable2=600;
and so on

echo'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
blabla
else{if
(blah.blah==(something)){**FUNCTION()**;}}
</body>
</html>'
?>

Теперь дело в том, что я хочу вставить прямо в ту часть, где указано FUNCTION () , что-то вроде этого:

$phpvar=20;

КАК я могу вставить туда свою переменную PHP без каких-либо ошибок?!

был бы очень рад, если бы кто-нибудь мог мне помочь,

заранее спасибо

EDIT:

проблема в том, что я использовал код "ЭХО, бла-бла", поэтому твои идеи мне не помогут. Я отредактировал свой источник, чтобы использовать ваши предложения, но до сих пор не могу понять ...

Теперь мой код выглядит так:

<?php
$variable1=300;
$variable2=600;
and so on
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
blah

<div id="blah" style="margin:0;padding:0;position:absolute;left:' . $variable1 . 'px;top:' . $variable2 . 'px;width:148px;height:57px;text-align:left;z-index:3;">
</body>
</html>

как мне вставить переменные, чтобы они действительно работали? не работает ..

Ответы [ 3 ]

0 голосов
/ 09 октября 2011

Что ж, моим первым предложением было бы изменить способ вывода ваших данных в браузер, например

<?php
$variable1=300;
$variable2=600;
and so on
//instead of doing an echo and echo-ing all the stuff out you just temporarily end your code
?>

, затем вывести здесь свой HTML-код и код JavaScript и вставить блок php, когда вам нужноввести его в JavaScript следующим образом:

var SomeVar = <?php echo $variable1; ?>;

и так далее ...

надеюсь, это поможет

0 голосов
/ 09 октября 2011

Примерно так:

<?php
$variable1=300;
$variable2=600;
// and so on
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body>
<!-- blabla, some HTML, some JavaScript, etc. -->
  if (blah.blah==(something)){
<?php
  $phpvar = 20;
  // some other PHP code
  echo $phpvar;
?>
  }
</body>
</html>

Существует несколько различных способов сделать это, и кто-то может ответить на этот вопрос более идиоматическим языком в PHP (я давно занимался PHP). По сути, я делаю пару вещей:

  1. Я немного отделил код PHP от разметки HTML. Это часто предпочтительнее больших echo операторов для удобочитаемости, производительности и т. Д. Нет необходимости echo больших кусков статического HTML, просто обрабатывайте его как обычный HTML вне тегов PHP. (Это также облегчит разработку и чтение, поскольку вам не придется избегать каких-либо вещей или иметь дело со строками PHP в вашем HTML-коде.)
  2. Я добавил второй тег PHP для кода, который находится в середине страницы. Я полагаю, вы захотите сделать больше, чем просто назначить переменную, и вы можете. Все, что вы видите в этом разделе кода, попадет в ту часть визуализированного вывода HTML. Вы также можете писать циклы вокруг вашего HTML, который будет повторять его, как если бы он был частью кода PHP и т. Д.

Главное, чтобы контекстный код PHP был отделен от HTML / JavaScript, который он генерирует. Код PHP обрабатывается на сервере, прежде чем страница отображается в браузере. Как только страница доставлена ​​в браузер, код PHP готов и фактически больше не существует. На этом этапе это простая HTML / JavaScript-страница, отображаемая и выполняемая в браузере. Хотя неясно, что вы на самом деле пытаетесь сделать в своем итоговом HTML / JavaScript в этом вопросе, вы должны убедиться, что в конечном коде вы сделаете его ясным и простым для понимания и не пытайтесь смешивать JavaScript с PHP. (По крайней мере, без понимания разделения и использования его соответственно, например, с вызовами AJAX.)

0 голосов
/ 09 октября 2011

Не вполне уверен, что код делает, но как насчет этого?

<?php

$variable1 = 300;
$variable2 = 600;

$blah = 'something';

$phpvar = 'I am here';

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php

if ($phpvar != '') {
?>
<script>
var phpvar = "<?php echo $phpvar?>";
</script>
<?php
}

?>
</head>
<body>
<p>Hello world!</p>
<?php
if ($blah == 'something'){
?>
<script>
function doStuff(){
    alert('Stuff done.');
}
</script>
<?php
}
?>
<p>After stuff</p>
<?php
if ($blah != 'something'){
?>
<script>
function noStuff();
</script>
<?php
} else {
?>
<p>No stuff done this time.</p>
<?php
}
?>
</body>
</html>

http://codepad.org/4hbVRJID

Который выдаст:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
var phpvar = "I am here";
</script>
</head>
<body>
<p>Hello world!</p>
<script>
function doStuff(){
    alert('Stuff done.');
}
</script>
<p>After stuff</p>
<p>No stuff done this time.</p>
</body>
</html>

Обратите внимание, как я использую теги PHP (<?php ?>) для интерполяции PHP в разметке. Это часто делается при использовании PHP в качестве движка шаблонов (поверх любой логики, выполняемой отдельно). Таким образом, вам не нужно иметь дело с echo, но иногда это может быть трудно читать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...