Anzeige

 php in js

rernanded

Erfahrenes Mitglied
#1
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:
<?php

include_once("php-connection.php"); 

$sql = "SELECT * FROM urls ORDER BY id ASC LIMIT 0,100";

$ergebnis =    @mysql_query($sql);
$anz_ds =    @mysql_num_rows($ergebnis);

for ($ii = 0 ; $ii < $anz_ds ; $ii++)
{

   $id =@mysql_result($ergebnis,$ii,"id");
   $url =@mysql_result($ergebnis,$ii,"url");

}
?>

<html>
 
<head>
<style>
.iframe {
width: 789px;
height: 456px;
        -transform: scale(0.5);
        -moz-transform: scale(0.5);     
        -o-transform: scale(0.5);
        -ms-transform: scale(0.5);     
        -webkit-transform: scale(0.5);     
}
</style>
<script>
var URLs = "<?php echo "\"$url\","; ?>";
var currURL = 0;
function previframe() {
    if (currURL == 0) currURL = (URLs.length -1);
      else currURL--;
    document.getElementById("iframeeins").src = URLs[currURL];
}
function nextiframe() {
    currURL = (currURL + 1) % URLs.length;
    document.getElementById("iframeeins").src = URLs[currURL];
} 
</script>
</head>
<body>

<iframe src="http://www.abcblablabla.de/" id="iframeeins" class="iframe"></iframe>
<button onclick="previframe()">PREV</button><button onclick="nextiframe()">NEXT</button>

</body>
</html>
 

rernanded

Erfahrenes Mitglied
#3
Besser???
HTML:
<?php
$db_link = mysqli_connect (
                     'server',
                     'user',
                     'pw',
                     'db'
                    );
$sql = "SELECT * FROM urls LIMIT 0,100";
$db_erg = mysqli_query( $db_link, $sql );
if ( ! $db_erg )
{
  die('Dies ist eine ungültige Abfrage.' . mysqli_error());
}
while ($row = mysqli_fetch_object($db_erg))
//echo $row->url."<br />"; 
?>
 

rernanded

Erfahrenes Mitglied
#5
Geht leider nicht
Quelltext:
HTML:
<html>
<head>
<style>
.iframe {
width: 789px;
height: 456px;
        -transform: scale(0.5);
        -moz-transform: scale(0.5);    
        -o-transform: scale(0.5);
        -ms-transform: scale(0.5);    
        -webkit-transform: scale(0.5);    
}
</style>
<script>
var URLs = ["",];
var currURL = 0;
function previframe() {
    if (currURL == 0) currURL = (URLs.length -1);
      else currURL--;
    document.getElementById("iframeeins").src = URLs[currURL];
}
function nextiframe() {
    currURL = (currURL + 1) % URLs.length;
    document.getElementById("iframeeins").src = URLs[currURL];
}
</script>
</head>
<body>
<iframe src="http://www.123blablabla.de/" id="iframeeins" class="iframe"></iframe>
<button onclick="previframe()">PREV</button><button onclick="nextiframe()">NEXT</button>
</body>
</html>

php sieht so aus
HTML:
<?php
$db_link = mysqli_connect (
                     'server',
                     'user',
                     'pw',
                     'db'
                    );
$sql = "SELECT * FROM urls LIMIT 0,3";
$db_erg = mysqli_query( $db_link, $sql );
if ( ! $db_erg )
{
  die('Dies ist eine ungültige Abfrage.' . mysqli_error());
}
while ($row = mysqli_fetch_object($db_erg))
?>
...


...
<script type="text/javascript">
var URLs = [<?php echo "\"".$row->url."\","; ?>];

...
 

ComFreek

Mod | @comfreek
Moderator
#6
Du gibst immer nur die URL der "letzten" Zeile (= false) aus.
PHP:
$urls = [];
while ($row = mysqli_fetch_object($db_erg)) {
  $urls[] = $row->url;
}

// ...

var URLs = <?php echo json_encode($urls); ?>
 

ComFreek

Mod | @comfreek
Moderator
#8
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:
Javascript:
var URLs = <?php echo json_encode($urls); ?>
document.getElementById("iframeeins").src = URLs[0];
...
 
Anzeige

Neue Beiträge

Anzeige