Ubacivanje PHP coda unutar html-a koji se dobija sa echo

Naslov teme je malo zbunjujuci, ali bit ce vam jasno odma o cemu se radi.

    $range = '<input type="range"  onchange="javascript:range(this.value);">
              <input type="text" id="textInput" class="form-control" value="<?php echo $this->value?>">';

Problem je sa <?php echo $this->value?> jer to posmatra kao string, a posmatra kao string jer se radi o PHP file-u u koji je ubacen html na nacin da se dodijeli varijabli $range kao jedan string. Eh, sad fazon je sto je meni potrebno da html odnosno field dobija value kao echo $this->value;

U fazonu oni koji znaju otprilike kako bi se trebalo rijesiti, znat ce i sta je problem da ne objasnjavam dalje :)…

Svaka pomoc je dobrodosla…

Hvala

Rijeseno:

    $range = '<input type="range" id="jform_range" name="jform[range]" min="0" max="100" onchange="javascript:range(this.value);">
              <input type="text" id="textInput" class="form-control" value=' . $this->value . '>';
<?php
// ovdje je tvoj php code
?>
<!-- ovdje dolazi tvoj html kod -->
<input type="range"  onchange="javascript:range(this.value);">
<input type="text" id="textInput" class="form-control" value="<?php echo $this->value?>">
<!-- ovdje se zavrsava html kod i nastavlja PHP kod -->
<?php
// neki PHP kod

U php datoteci moze otvarati i zatvarati svoj PHP kod koliko god put zelis

Slazem se i znam za to, ali fazon je sto je ovo sve moralo da bude u php funkciji koja je trebala da vrati upravo taj html odnosno input field tako da ne vidim drugog nacina kako bi ga dodijelio php varijabli ukoliko zatvorim php code pa pocnem pisat html code?

Na isti taj nacin na koji sam ti gore napisao nije to nikakva razlika.

$moja_varijabla = " ?><input type="text" name="txtTest" value="<?php echo $this->value ?>" /> <?php ";
return $moja_varijabla;

@creatifcode To nece tako raditi.

@Potta kada imas poprilicno html koda koji moras vratiti, najbolje ti je koristitit ‘output buffering’:

<?php ob_start(); ?>

<div class="<?php echo $class; ?>">text</div>

<?php $output = ob_get_clean(); ?>

$output ce ti sadrzavati sav output izmedju ob_start i ob_get_clean, a puno je urednije.

Ja sam radio koristeći

    $a =  <<<HTML
        
        <div class="asd"></div>
        
HTML;
    
    echo $a;

radi ti output HTML-a bez problema s time da ti ovaj HTML; mora biti u novom redu na početku reda. PHP varijable ispisuješ unutar {} zagrada, s time da ne radiš nikakav echo, samo tamo gdje trebaš PHP varijablu untar tog <<<HTML ubaciš unutar {} zagradi.

Mislim da ovo vazi samo za PHP 5.3 i novije verzije… I ovu verziju sam lupio ne znam tacno ( a ne da mi se googlat :slight_smile: … uglavnom koliko znam to nije podrzano u svim verzijama…

Hvala svima… tu smo da prodiskutujemo i nadjemo najbolje rijesenje…

Poz i zivjeli :smile:

Oba nacina su dostupna odavno, jedino od 5.3.0 koristeci <<< (heredoc) ima neke promjene (dodane mogucnosti).
Mislim da ovo vazi samo za PHP 5.3 i novije verzije

Istina, nemam pojma o cemu sam razmisljao kada sam pisao taj post.