Javascript PHP Variable ausgeben?


20.03.2022, 19:54

Keine Ahnung warum es weg ist. Hier das neue:

https://pastebin.com/8x1RURhZ


20.03.2022, 19:58

Hier das entsprechende Script (teil des Hauptcodes):

<script>ace.require("ace/ext/language_tools");var editor=ace.edit("editor");ace.require('ace/ext/settings_menu').init(editor);var editor_cnt=1,editor_index=1,active_editor=1,editor_session=[];var request,init_ts,open_file_name;var lang='python3';default_content=print($the_code);var prev_result='in';var site_url="https://www.online-python.com/"
    var base_url="https://www.online-python.com/"
    var share_url=base_url;var exe_cnt=0;var addthis_share={url:share_url,}
    var csrf_token_name='ci_csrf_token'
    var csrf_token=''
    var isMobile=window.orientation>-1;toastr.options={"closeButton":true,"debug":false,"newestOnTop":true,"positionClass":"toast-top-right","preventDuplicates":true,"preventOpenDuplicates":true,"maxOpened":1,"onclick":null,"showDuration":"100","hideDuration":"1000","timeOut":"3000","extendedTimeOut":"1000","showEasing":"swing","hideEasing":"linear",};var instance=Split(['#mi','#d'],{direction:'vertical',sizes:[66,28],gutterSize:5,cursor:'row-resize',minSize:[0,180],onDrag:function(){editor.resize();},});function term_expand(){var element=document.getElementById('term-expand').innerHTML;if(element==='<i class="fas fa-expand-alt fa-lg"></i>')
.... geht noch weiter

3 Antworten

Du kannst mit JavaScript nicht auf PHP-Variablen zugreifen. PHP wird auf dem Server ausgewertet, JavaScript im Browser. Bevor dein JavaScript läuft, ist PHP schon längst fertig.

Du kannst höchstens, je nach dem was du genau vor hast, die PHP-Variable in dein JavaScript einschleusen, indem du es PHP einfach in die Ausgabe printen lässt:

<?php
  // ... irgendwas
  $the_code = 123;
?>
<html>
  // dein HTML
  <script>
    // dein JavaScript
    alert("$the_code ist <?=$the_code?>")';
  </script>
</html>

<?=$the_code?> ist einfach kurz für <?php echo $the_code; ?>

PHP wertet das also aus und wenn das fertige Dokument zum Nutzer gesendet wird, landet $the_code dann in der alert()-Anweisung.

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung

speedwanted55 
Fragesteller
 20.03.2022, 20:11

Also, mein Plan ist folgender. Es gibt eine Datei, welche ausgelesen wird. Der Inhalt wird dann in der Variable $the_code gespeichert. Dieser soll dann in im Bereich des editors ausgegeben werden (sozusagen die gespeicherte Datei in den Editor laden), oder fällt jemanden da was anderes ein?

0
Functional  20.03.2022, 20:12
@speedwanted55

Dann geht das wie oben beschrieben. Du lädst dein Zeug in $the_code und gibst es dann mittels

<?php echo($the_code); ?> // oder <?=$the_code?>

ins JavaScript aus, wo es benötigt wird.

0
speedwanted55 
Fragesteller
 20.03.2022, 21:28
@Functional

leider funktioniert dies nicht. stattdessen wird der editor "ungültig" und kommt gar nicht erst zum vorschein...

0

Wenn du in JavaScript einfach den PHP Variablennamen verwendest dann kann das nicht funktionieren.

PHP wird serverseitig interpretiert, dein JavaScript jedoch browserseitig.

Du kannst also mit JavaScript und PHP erstmal nicht interagieren.

Wenn du das JavaScript jedoch durch PHP generierst kannst du deinen gewünschten Wert direkt dort reinschreiben.

Die Serverseite wird vorher durchlaufen. Ist dann die Seite geladen lädt das JavaScript.

Woher ich das weiß:Berufserfahrung – Berufserfahrung

speedwanted55 
Fragesteller
 20.03.2022, 20:05

Danke für deine nette Antwort und die Erklärung. Wenn ich aber mit

<?php echo '<script>..... 

arbeite, wird das ganze ja beim nächsten Hochkommata unterbrochen.. Kann ich was dagegen machen?

0
TechPech1984  20.03.2022, 20:10
@speedwanted55

das kann so nicht funktionieren . hat auch mit SCRIPT nichts zu tun . lerne bitte die Grundlagen wo was wie läuft . und dann formatier dein Script so das man es lesen kann .

guckt dir einfach mal beispiele an wie man z.v. ausgaben so macht das sie im Javascript bereich eingebunden werden können .

wenn also

<script> <?php require .....

?></script>

und dein script darf nur JAVASCRIPT ausgeben . PHP läuft nicht im browser . wenn PHP fertig ist, schickt es die seite an den Browser und PHP wird beendet . ergo wenn dein browser die seite bekommen hat, gibt es das ausliefernde PHP schon lange nicht mehr . server client anwendungen sind keine app wie .z.b. Java und auf deinem Desktop als Anwendung.

0
TheQ86  20.03.2022, 20:13
@speedwanted55

Ja. Das nennt man escapen. Ich geb dir mal paar Beispiele wie man in PHP mit Strings umgeht

  • In einzelnen Hochkommata werden keine Variablen ersetzt
  • In einzelnen Hochkommata kann man aber Anführungszeichen problemlos schreiben
  • In Anführungszeichen werden Variablen ersetzt durch den Wert
  • In Anführungszeichen müssen Anführungszeichen "escaped" werden durch Schrägstrich
0
TechPech1984  20.03.2022, 20:16
@TheQ86

der hat eher das problem das er javascript und php mixed , also ein require php und unten dann mit javascript weiter macht , da hilft auch escapen nix .

0
TheQ86  20.03.2022, 20:19
@TechPech1984

Das ist mir klar. Ich gebe ja hier auch eher Hilfestellung für den Fall, dass er seinen JS Code serverseitig vorrendern möchte. Wenn er da dann auch ein require reinpackt wird das natürlich immer noch nicht funktionieren. Grundlagen lernen wäre vorher tatsächlich angebracht.

1

du mixed php und javascript in der selbern datei .

sorry aber du hast ds konzept komplett nicht verstanden .

php und javascript haben gar nichts miteinander zu tun , das einzige was du machen kannst, mit php ein javascript ausgeben . also mit echo "javascript strings"

aber dann funktioniert dein ganzer require kram eh nicht . weil halt php nicht javascript ist . und wenn require bei javascript gibts das nur serverseitig z.b. bei node.js