1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

php in js

Dieses Thema im Forum "PHP" wurde erstellt von rernanded, 28. Oktober 2016.

  1. rernanded

    rernanded Erfahrenes Mitglied

    Hi

    nachfolgender code will nicht so recht, dh die Seiten mit den Urls die ich per php im array haben will kann ich nicht aufrufen.
    Lediglich die www.abcblablabla.de wird im iframe angezeigt. Beim Klicken auf next oder prev passiert dann nix mehr.

    MONI

    HTML:
    1. <?php
    2.  
    3. include_once("php-connection.php");
    4.  
    5. $sql = "SELECT * FROM urls ORDER BY id ASC LIMIT 0,100";
    6.  
    7. $ergebnis =    @mysql_query($sql);
    8. $anz_ds =    @mysql_num_rows($ergebnis);
    9.  
    10. for ($ii = 0 ; $ii < $anz_ds ; $ii++)
    11. {
    12.  
    13.   $id =@mysql_result($ergebnis,$ii,"id");
    14.   $url =@mysql_result($ergebnis,$ii,"url");
    15.  
    16. }
    17. ?>
    18.  
    19.  
    20. .iframe {
    21. width: 789px;
    22. height: 456px;
    23.         -transform: scale(0.5);
    24.         -moz-transform: scale(0.5);    
    25.         -o-transform: scale(0.5);
    26.         -ms-transform: scale(0.5);    
    27.         -webkit-transform: scale(0.5);    
    28. }
    29. var URLs = "<?php echo "\"$url\","; ?>";
    30. var currURL = 0;
    31. function previframe() {
    32.     if (currURL == 0) currURL = (URLs.length -1);
    33.       else currURL--;
    34.     document.getElementById("iframeeins").src = URLs[currURL];
    35. }
    36. function nextiframe() {
    37.     currURL = (currURL + 1) % URLs.length;
    38.     document.getElementById("iframeeins").src = URLs[currURL];
    39. }
    40. </head>
    41.  
    42. <iframe src="http://www.abcblablabla.de/" id="iframeeins" class="iframe"></iframe>
    43. <button onclick="previframe()">PREV</button><button onclick="nextiframe()">NEXT</button>
    44.  
    45. </body>
    46. </html>
     
  2. sheel

    sheel I love Asm Administrator

    Ja... o_O
     
    lockcat gefällt das.
  3. rernanded

    rernanded Erfahrenes Mitglied

    Besser???
    HTML:
    1. <?php
    2. $db_link = mysqli_connect (
    3.                     'server',
    4.                     'user',
    5.                     'pw',
    6.                     'db'
    7.                    );
    8. $sql = "SELECT * FROM urls LIMIT 0,100";
    9. $db_erg = mysqli_query( $db_link, $sql );
    10. if ( ! $db_erg )
    11. {
    12.  die('Dies ist eine ungültige Abfrage.' . mysqli_error());
    13. }
    14. while ($row = mysqli_fetch_object($db_erg))
    15. //echo $row->url."<br />";
    16. ?>
     
  4. sheel

    sheel I love Asm Administrator

    Ja ... und, gehts?

    Wenn nein, wie schaut der ausgegebene Quelltext im Browser aus?
     
  5. rernanded

    rernanded Erfahrenes Mitglied

    Geht leider nicht
    Quelltext:
    HTML:
    1. .iframe {
    2. width: 789px;
    3. height: 456px;
    4.         -transform: scale(0.5);
    5.         -moz-transform: scale(0.5);    
    6.         -o-transform: scale(0.5);
    7.         -ms-transform: scale(0.5);    
    8.         -webkit-transform: scale(0.5);    
    9. }
    10. var URLs = ["",];
    11. var currURL = 0;
    12. function previframe() {
    13.     if (currURL == 0) currURL = (URLs.length -1);
    14.       else currURL--;
    15.     document.getElementById("iframeeins").src = URLs[currURL];
    16. }
    17. function nextiframe() {
    18.     currURL = (currURL + 1) % URLs.length;
    19.     document.getElementById("iframeeins").src = URLs[currURL];
    20. }
    21. </head>
    22. <iframe src="http://www.123blablabla.de/" id="iframeeins" class="iframe"></iframe>
    23. <button onclick="previframe()">PREV</button><button onclick="nextiframe()">NEXT</button>
    24. </body>
    25. </html>

    php sieht so aus
    HTML:
    1. <?php
    2. $db_link = mysqli_connect (
    3.                     'server',
    4.                     'user',
    5.                     'pw',
    6.                     'db'
    7.                    );
    8. $sql = "SELECT * FROM urls LIMIT 0,3";
    9. $db_erg = mysqli_query( $db_link, $sql );
    10. if ( ! $db_erg )
    11. {
    12.  die('Dies ist eine ungültige Abfrage.' . mysqli_error());
    13. }
    14. while ($row = mysqli_fetch_object($db_erg))
    15. ?>
    16. ...
    17.  
    18.  
    19. ...
    20. <script type="text/javascript">
    21. var URLs = [<?php echo "\"".$row->url."\","; ?>];
    22.  
    23. ...
     
  6. ComFreek

    ComFreek Mod | @comfreek Moderator

    Du gibst immer nur die URL der "letzten" Zeile (= false) aus.
    Code (PHP):
    1. $urls = [];
    2. while ($row = mysqli_fetch_object($db_erg)) {
    3.   $urls[] = $row->url;
    4. }
    5.  
    6. // ...
    7.  
    8. var URLs = <?php echo json_encode($urls); ?>
     
  7. rernanded

    rernanded Erfahrenes Mitglied

    @ComFreek: alles klar und danke.
    Kleines Problem ist noch, daß die erste url im array übersprungen wird, allerdings nur beim ersten mal.

    MONI
     
    Zuletzt bearbeitet: 29. Oktober 2016
  8. ComFreek

    ComFreek Mod | @comfreek Moderator

    Du könntest z. B. den <script>-Teil ganz unter deinen <iframe> schieben, sodass du im JS die 1. Adresse vom iframe direkt setzen kannst:
    Code (Javascript):
    1. var URLs = <?php echo json_encode($urls); ?>
    2. document.getElementById("iframeeins").src = URLs[0];
    3. ...
     
    Halfbax gefällt das.
  9. rernanded

    rernanded Erfahrenes Mitglied