2014-02-05 5 views
0

У меня вопрос, который прослушивает меня, так как я не могу найти ответ.Поместите переменную PHP внутри метки

Say я запускаю это:

<label><?php echo $c; ?></label> 

<?php 
$a = 100; 
$b = 50; 
$c = $a + $b; 
?> 

Это будет сказать, что это не будет знать $ C, потому что получить заявленное позже в сценарии, есть ли способ, что я могу установить переменную внутри этикетки с помощью PHP. Я знаю, что php очень ограничен по-своему, так как он просто загружен. Но мне было интересно, есть ли способ для этого, не помещая ярлык под скрипт php.

Я также открыт для javascript способов. Пока я могу установить переменные php внутри меток.

Заранее благодарен!

EDIT: Это не значит, что я не знаю, как правильно это сделать. $ до эха. Но мне было просто интересно, есть ли способ сделать это по-другому ...

+13

Как глупо, как это звучит, почему бы вам просто поместить метку после PHP части? –

+0

Объектно-ориентированный Php? –

+0

используйте 'printf ("% d ", ($ a + $ b))' вместо echo, внутри метки – diEcho

ответ

2

Вам нужно использовать переменные после их создания!

<?php 
    $a = 100; 
    $b = 50; 
    $c = $a + $b; 
    ?> 

    <label><?php echo $c; ?></label> 
+8

Блестящий ответ занимает немного времени, чтобы обернуть вокруг меня голову. Но после того, как он утонет, это просто блестящее решение. – Timmetje

+0

Он говорит, что ему нужно определить $ c после лейбла (причина неизвестна) ... – acbaltaci

+0

Нет, он никогда не говорит, что это нужно. он сказал, что это просто: 'потому что он объявлен позже в скрипте ' – Timmetje

0

Если вы открыты для JavaScript, вы можете сделать это следующим образом:

Во-первых, дать id на этикетке:

<label id="label">...</label> 

Тогда после того, как в PHP просто добавить:

echo '<script>document.getElementById("label").innerHTML = "'.$c.'";</script>'; 
+0

Я знаю, что это работает для простого HTTP-запроса, и OP попросил js-альтернативу ... но он действительно уродлив, и это приведет к проблемам, если скрипт загружается через вызов xhr (ajax) – cypherabe

0
is there a way that i can set a variable inside a label using PHP 

Да, попробуйте:

<label> 
<?php 
$a = 100; 
$b = 50; 
$c = $a + $b; 
echo $c; 
?> 
</label> 
0

В программировании на PHP он выполняет сверху вниз. Переменная должна иметь значение, прежде чем вы сможете его эхо:

<label><?php echo $c; ?></label> 

<?php 
$a = 100; 
$b = 50; 
$c = $a + $b; 
?> 

Вышеприведенное неверно, так как переменная $ c еще не имеет значения. Вы должны сначала выполнить PHP код, который вы имеете перед меткой, как это:

>

С выше $ с теперь содержит сумму $ а и $ Ь.

+0

Да, именно это я знал, что это невозможно сделать, но мне было интересно, есть ли вообще (javascript). –

0

Попробуйте это: -

<label><?php label(); ?></label> 

<?php 
function label() 
{ 
$a = 100; 
$b = 50; 
$c = $a + $b; 
echo $c; 
} 
?> 
0

и если вы действительно хотите иметь переменные перед выходом, вы можете использовать класс для его ::::

<?php 
class some{ 
    public function __construct(){ 

    } 

    public function really(){ 
     $a = 100; 
     $b = 50; 
     $c = $a + $b; 
     return $c; 
    } 
} 
?> 
<?php $some = new some();?> 
<label>This is C = <?php echo $some->really(); ?></label> 
0

Ну комментарии о порядок ваших линий, но я думаю, вы должны это сделать ... Так что .. 1 - Дайте идентификатор для обозначения:

<label id="label4c"></label> 

2 - Убедитесь, что на этой странице есть jquery ..

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

3 - Добавить это как после $c = $a + $b;

echo "<script>jQuery(document).ready(function() { 
jQuery('#label4c').text('$c'); 
});</script>"; 
+0

Я бы сказал, что это действительно плохая практика для смешивания javascript с php >>> http://programmers.stackexchange.com/questions/126671/is-it-considered-bad-practice-to-have-php-in-your- javascript, если у вас нет лучшего пункта? – jycr753

+0

Ответ Rolen Koh выглядит лучше, но вопрос находится в разделе javascript. поэтому смешение - это то, что он ищет, я думаю .. – acbaltaci

+0

потому что там вы говорите ему, чтобы он включал в себя библиотеку пыльников, потому что для использования только 'innerHTML' – jycr753

0

Я не могу видеть реальную причину, почему Вы должны были бы сделать это, но это было стимулирующим мероприятием. Как уже многие другие говорили вам, вы не можете сделать это в простом PHP, потому что скрипт выполняется сверху вниз, и вы пытаетесь распечатать переменную до ее назначения.

Вы просили яваскрипт решений, и вот один, который показывает правильное значение после того, как дом полностью загружен:

<label><script> 
document.onreadystatechange = function() { 
    if (document.readyState == "complete") { 
    document.write(c); 
    } 
} 
</script></label> 

<?php 
$a = 100; 
$b = 50; 
$c = $a + $b; 
?> 
<script>var c = <?php echo $c;?>;</script> 

код является довольно наивным, и я не предлагаю, чтобы использовать его в реальном среда (также не может работать ни на одном устройстве), потому что она не хорошо написана и легко поддерживается. Я предпочел бы вам рассказать о вашем потоке и понять, действительно ли вам нужно делать то, что вам кажется (писать переменную до ее назначения). Я определенно верю, что есть способ перестроить ваш скрипт, чтобы написать лучший код: вы, вероятно, слишком много компрометируете. Удачи!

+0

Это просто пример сценария, а не что-то, что нужно сделать, я просто спрашивал из любопытства, если что-то можно было эхо-$ перед его назначением. –

+0

Отлично, это была моя догадка. Это способ, которым вы можете это сделать (с помощью javscript, как вы просили) –

0

Просто вы должны попробовать это с помощью сценария

<label id="p1"></label> 

<?php 
$a = 100; 
$b = 50; 
$c = $a + $b; 
?> 

<script> 
document.getElementById("p1").innerHTML="<?php echo $c; ?>"; 
</script> 
Смежные вопросы