waarom wordt data php niet weergegeven in javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paul Weiss

Paul Weiss

05/06/2024 11:38:56
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$result
= "dit werkt wel";            
?>


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


onderstaande werkt niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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>
Gewijzigd op 05/06/2024 12:21:29 door - Ariën -
 
PHP hulp

PHP hulp

12/12/2024 15:38:08
 
- Ariën  -
Beheerder

- Ariën -

05/06/2024 12:20:27
Quote Anchor link
Niet verwonderlijk als je jouw string in JavaScript met double-quotes begint en eindigt, en double-quotes gebruikt in je invoer.

Mijn advies single-quotes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var x = '<?php echo $result ?>';


Sowieso hoeven variabelen niet tussen quotes, dus ook die laat ik achterwege, al staat dat los van het probleem. Verder is Java totaal wat anders dan Javascript, en beiden zijn totaal niet met elkaar te vergelijken. Dus je titel heb ik even aangepast.
Gewijzigd op 05/06/2024 12:22:48 door - Ariën -
 
Paul Weiss

Paul Weiss

05/06/2024 12:21:40
Quote Anchor link
ik zie het ja en ik bedoel ook javascript.
Gewijzigd op 05/06/2024 12:23:11 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

05/06/2024 12:22:22
Quote Anchor link
Paul Weiss op 05/06/2024 12:21:40:
ik zie het ja


Ik zie daar geen double-quotes in je invoer.
 
Paul Weiss

Paul Weiss

05/06/2024 12:31:06
Quote Anchor link
he arien. hoe bedoel je bij de invoer? Ik heb nu trouwens de toewijzing in javacript in single-quotes geplaatst, maar ik krijg toch geen resultaat.
 
- Ariën  -
Beheerder

- Ariën -

05/06/2024 12:40:40
Quote Anchor link
Ik zie geen double-quotes in je tekst: dit werkt wel

Wel in deze tekst:
...... <input type="text".......
Gewijzigd op 05/06/2024 12:41:02 door - Ariën -
 
Paul Weiss

Paul Weiss

05/06/2024 12:59:05
Quote Anchor link
staat toch double quotes. de html wordt in php wel weergegeven trouwens. maar in javascript de inhoud opvragen lukt op 1 of andere manier niet.
Gewijzigd op 05/06/2024 12:59:42 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

05/06/2024 13:22:08
Quote Anchor link
Hoe ziet de relevant de code er nu uit?
 
Paul Weiss

Paul Weiss

05/06/2024 13:40:32
Quote Anchor link
he arien. hoe bedoel je precies. als de variable result in php wordt weergegeven is alles normaal zo te zien. geeft het input weer zoals het moet.

Toevoeging op 05/06/2024 13:42:18:

er gaat in ieder geval iets fout.
 
- Ariën  -
Beheerder

- Ariën -

05/06/2024 14:03:56
Quote Anchor link
Laat je relevante code eens zien? Ik heb toch gezegd wat er mis was?
 
Paul Weiss

Paul Weiss

05/06/2024 15:34:01
Quote Anchor link
de code zoals ik deze nu heb is als volgt maar de inhoud wordt in javascript niet weergegeven, zie ik iets over het hoofd dan? :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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>'
;

echo $result;

?>


<script>


var x = '<?php echo"$result"?>';
document.write(x);
</script>
Gewijzigd op 05/06/2024 15:34:41 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

05/06/2024 16:15:33
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var x = `<?php echo $result?>`;


Of met PHP:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$string
= "Dit is een\nstring met\nmeerdere\nlinebreaks.";
$cleaned_string = str_replace(array("\r", "\n"), '', $string);
echo $cleaned_string;
?>
Gewijzigd op 05/06/2024 16:38:49 door - Ariën -
 
Rob Doemaarwat

Rob Doemaarwat

05/06/2024 17:51:33
Quote Anchor link
Gewoon json_encode gebruiken, die lost al je problemen op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<script>
var x = <?php echo json_encode($result) ?>;
document.write(x);
</script>

Let op: je hoeft dus ook geen omsluitende quootjes meer te plaatsen
 
Paul Weiss

Paul Weiss

06/06/2024 16:12:38
Quote Anchor link
hartelijk dank voor jullie bijdragen. mee geholpen.
 
Jan R

Jan R

07/06/2024 07:07:52
 
Paul Weiss

Paul Weiss

07/06/2024 12:48:41
Quote Anchor link
bedankt. maar deze gebruik ik puur voor testdoeleinden.
 
- Ariën  -
Beheerder

- Ariën -

07/06/2024 13:29:57
Quote Anchor link
Dan lijkt een console.log() mij beter.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.