Ik probeer een stuk html dat is opgeslagen in een php variable in java weer weer te geven. met een gewoon stukje tekst werkt het wel, maar met een stuk html code lukt dat niet. heeft iemand een idee hoe ik dit kan oplossen?

onderstaande werkt wel


<?php 
$result = "dit werkt wel";            
?> 

<script>
var x = "<?php echo "$result" ?>"; 
document.write(x); 
</script>


onderstaande werkt niet


<?php 
$result = '<form id="change_label">
<label>Voer label in</label>
<br>
<input type="text" placeholder="vul labelnaam / naam invoerveld in" name="naam_rijzoek" id="input_rijzoek"><br>
<button id="rijzoek" onclick="changelabel(this.id); return false;">Bevestigen</button>
</form>';
?> 

<script>
var x = "<?php echo "$result" ?>"; 
document.write(x); 
</script>
Probeer eens een console.log() en stuur het eens naar de JS-console, of gebruik een simpele alert(). Puur ter debugging.

Ik zie al waarom het niet werkt. Er staan enters oftewel linebreaks in je HTML.
Dat kan je oplossen door backticks (`````) te gebruiken i.p.v. single-quotes. Of eventueel in PHp deze strippen


var x = `<?php echo $result?>`; 


Of met PHP:
<?php
$string = "Dit is een\nstring met\nmeerdere\nlinebreaks.";
$cleaned_string = str_replace(array("\r", "\n"), '', $string);
echo $cleaned_string;
?>
Gewoon json_encode gebruiken, die lost al je problemen op:

<script>
var x = <?php echo json_encode($result) ?>;
document.write(x);
</script>

Let op: je hoeft dus ook geen omsluitende quootjes meer te plaatsen
hartelijk dank voor jullie bijdragen. mee geholpen.
bedankt. maar deze gebruik ik puur voor testdoeleinden.
Dan lijkt een console.log() mij beter.

Reageren