• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[PHP] Div erstellen mit Verlinkung

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
Hey @hillepille

Vielen Dank für deine Hilfe.
Ich habe deinen überarbeiteten Code eingefügt.
Leider bekomme ich diesen Error:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /srv/disk11/1807619/www/asdfa.asdf.asdf/upload.php on line57

PHP:
    $db_connection = mysqli_connect("DB-Server-IP","DB-User","DB-Password","DB-Name");
             $channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
             $numrows_cc = mysqli_num_rows($channel_check);

Die 57 wäre diese:
PHP:
 $numrows_cc = mysqli_num_rows($channel_check);

An was kann das liegen? Ich gebe ja einen Parameter an...

Freundliche Grüsse
Kebab
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
kanns sein dass dein $channel_check "false" retour gibt?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Kebab

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi was gibt denn ein

PHP:
var_dump($db_connection);

aus?

Und dann, was gibt

PHP:
var_dump($channel_check);

aus? Hast du die Parameter in mysqli_connect mit den korrekten Werten ersetzt?

Setz die SQL-Abfrage doch mal in eine eigene Variable:

PHP:
$sql_abfrage = "select channel_name from channels where  WHERE created_by='".$user."'";
mysqli_query($db_connection, $sql_abfrage);

Du/wir hast/haben die Maskierungs-' um den Wert $user vergessen (jedenfalls wenn die Variable $user ein String sein sollte). So kannst du dir ja die Variable $sdql_abfrage mit nem
PHP:
echo $sql_abfrage;
ausgeben lassen, kopieren und das dann direkt auf der DB mit PHPMyAdmin testen. bekommst du dann Ergebnisse?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Kebab

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
Hallo zusammen

PHP:
var_dump($channel_check);
Gibt bool(false) aus.

und

PHP:
var_dump($db_connection);

gibt:
object(mysqli)#1 (19) { ["affected_rows"]=> int(0) ["client_info"]=> string(6) "5.5.37" ["client_version"]=> int(50537) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(30) "hoster.hoster.net via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(10) "5.5.38-log" ["server_version"]=> int(50538) ["stat"]=> string(152) "Uptime: 4389612 Threads: 2 Questions: 214699187 Slow queries: 497 Opens: 2212233 Flush tables: 1 Open tables: 8192 Queries per second avg: 48.910" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(8166007) ["warning_count"]=> int(0) }

das echo out gibt:
select channel_name from channels where WHERE created_by='asdf'
welches so stimmt.

Vielen Dank
Kebab
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, verstehe ich richtig, funktioniert jetzt so? Dann könnten wir uns ja an die Divs machen, oder? Wenn ich dich richtig verstanden habe, soll ein Div erstellt werden, wenn einer der Radiobutton angeklickt wird?
 
  • Like
Reaktionen: Kebab

DubiDuh

Zwiebelapfel
Registriert
20.05.08
Beiträge
1.288
Stick wort: MySQL injection! Bitte bereits jetzt lernen, wie es sicher geht!
 
  • Like
Reaktionen: Kebab

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Stick wort: MySQL injection! Bitte bereits jetzt lernen, wie es sicher geht!

Hi, da hast du zwar grundsätzlich recht, hier ging es aber erstmal nur um eine Ausgabe in einer Datenbank vorhandener Datensätze. Die Prüfung auf MySQL-Injektion müsste beim Schreiben des Werts $user in die DB mit mysql_real_escape_string($user) passieren.
 
  • Like
Reaktionen: Kebab

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
Hi, verstehe ich richtig, funktioniert jetzt so?
@hillepille Leide noch nicht.
Der Code sieht jetzt so aus;
PHP:
$db_connection = mysqli_connect("asdf.asdf.asdf","asdf","asdf","asdf");
    //$channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
    $channel_check = "SELECT channel_name FROM channels WHERE created_by='".$user."'";
    mysqli_query($db_connection, $channel_check);
    $numrows_cc = mysqli_num_rows($channel_check);

Leider bekomme ich von der 59 Linie einen Fehler:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, string given in /srv/disk11/1807619/www/asdf.asdf.asfd/upload.php on line 59

Welche diese Linie ist:
PHP:
$numrows_cc = mysqli_num_rows($channel_check);
Das vardump von $channel_check gibt auch false aus, was nicht so sein sollte.
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, da hast du ja auch alles durcheinandergeschmissen. :) So wäre es dann richtig. Du kannst och auch bis auf die Zeile $db_connection.. alles einfach kopieren.

PHP:
$db_connection = mysqli_connect("asdf.asdf.asdf","asdf","asdf","asdf");
    //$channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
    $sql_abfrage = "SELECT channel_name FROM channels WHERE created_by='".$user."'";
    $channel_check = mysqli_query($db_connection, $sql_abfrage);
    $numrows_cc = mysqli_num_rows($channel_check);
 
  • Like
Reaktionen: Kebab

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
@hillepille
Oh okay vielen Dank.
Leider bekomme ich dann diese Seite:
Error 500: Script Execution Failure
Description: The server encountered an internal error or misconfiguration and was unable to complete your request.

Most common reasons for returning this error message are:

File Upload Mode
When you upload Perl, CGI scripts via FTP you should use always ASCII mode. If you get "Error 500: Script Execution Failure" you should check whether your FTP client uses ASCII mode when uploading your scripts, because if it uses BINARY mode to upload your scripts they won't work on the server. The problem caused by wrong upload mode is associated with the way different operating systems handle the "end of line" character. Unix system uses a "line-feed" (LF), Windows uses a "carriage-return" (CR) and "line-feed" (LF) pair. That's why it is very important that you set the uploading mode to ASCII.

File Permissions
When you upload scripts via FTP the file permissions are set by default to 755. If you get "Error 500: Script Execution Failure" you should check whether your scripts have 755 permissions. Otherwise your scripts have lower level of permissions and does not support execution upon request. The octal representation of the 755 permission is equal to the following textual format: -rwxr-xr-x
Most FTP clients support the CHMOD command which is used for setting file permissions. In case you have set improper permissions to your scripts, use your FTP client and set "Read, Write, Execute" permissions for the owner, "Read, Execute" permissions for the group and everyone else.

Script Errors
This is the third well known reason for getting "Error 500: Script Execution Failure" upon execution of your scripts. Check your scripts for any obvious syntax or programming errors to make sure your code is not broken.


Remember: When you get a "Error 500: Script Execution Failure", you should always check for any file uploading problems (ASCII/BINARY) and the executable permission settings. Once those are checked and verified, it looks like there is a syntax error or some other problem in the script.
 

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
Wenn ich die i wegnehme also nur noch mysql nehme dann bekomme ich die Fehler:
Warning: mysql_query() expects parameter 1 to be string, resource given in /srv/disk11/1807619/www/asdf.asdf.asdf/upload.php on line 58

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /srv/disk11/1807619/www/asdf.asdf.asdf/upload.php on line 59
 
Zuletzt bearbeitet:

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, das hat nichts mit dem hier behandelten PHP-Code zu tuen, der ist so korrekt. Wenn du wieder auf mysql_ zurückgehst, dann passen die eingetragenen Parameter nicht, das ist ja klar. Hast du File-Upload freigeschaltet, ist die mysqli-Erweiterung überhaupt eingeschaltet,....

Leg mal ne neue Datei an, da rein schreibst du

Code:
<?php
phpinfo();
?>

Dann bekommst du ne Seite mit den per php.ini definierten Einstellungen. Such da mal nach mysqlI, ob das verfügbar ist, wobei das funktionieren muss, du hast ja weiter oben schon das mysqi-Object ausgegeben. In der Ausgabe phpinfo(); steth aucvh wo die Fehlerlogs liegen (error_log). Das kannst du ja mal aufmachen und dir die letzten Einträge anschauen.

Ansonten musst du das durchgehen. Bau ne neue Datei und inkludier den Header. Dannschaust du ob das ohne Fehler funzzt. Dann nimmst du die Zeilen von oben

PHP:
 $db_connection = mysqli_connect("asdf.asdf.asdf","asdf","asdf","asdf");
    //$channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
    $sql_abfrage = "SELECT channel_name FROM channels WHERE created_by='".$user."'";
    $channel_check = mysqli_query($db_connection, $sql_abfrage);
    $numrows_cc = mysqli_num_rows($channel_check);

und baust die ein. Fehlermeldung ja/nein?

Und so weiter, immer einen Teil rüberkopieren und dann checken ob es funktioniert. Wie gehst es denn nach der num_rows-Abfrage weiter?

Hast du hier auch auf mysqli_-umgestellt?
PHP:
while($row = mysql_fetch_assoc($channel_check)) {

also daraus

PHP:
while($row = mysqli_fetch_assoc($channel_check)) {

gemacht? Und das gilt dann für alle auf mysql_ lautenden Befehle da muss überall ein mysqli-hin. Gggf. jusstd ud ann wie bei mysqli_query noch den ein oder anderen Parameter ergänzen. Posted och noch mal den ganzen Code inklusive der gemachten Anpassungen.
 
Zuletzt bearbeitet:

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Schau mal ob der >Code hier auf einer neuen Seite so funktioniert. mysqli_connect und $user musst du noch mit korrekten Werten füllen:

PHP:
<?php
//include ('./includes/header.php');
$db_connection = mysqli_connect("localhost","asdf","asdf","asdf");

$user = "abcde";
?>
<h2>Upload a Video</h2>
<form action='upload.php' method='POST' enctype='multipart/form-data'>
    Video Title: <input type='text' name='video_title' value='' /><br />
    Video Description:<br />
    <textarea rows='10' cols='40' name='video_description'></textarea><br />
    Video Keywords: <input type='text' name='video_keywords' value='' /><br />
    Privacy: <input type='radio' name='privacy' value='Public' /> Public &nbsp;&nbsp; <input type='radio' name='privacy' value='Private' /> Private<br />
    Choose your Channel: <br />
    <?php

    //$channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
    $sql_abfrage = "SELECT channel_name FROM channels WHERE created_by='".$user."'";
    $channel_check = mysqli_query($db_connection, $sql_abfrage);
    $numrows_cc = mysqli_num_rows($channel_check);
    if ($numrows_cc == 0) {
        'You havent made any channels yet, click the button to make one.';
    }
    else
    {
        $varChannel = "";
  while(FALSE !== ($row = mysqli_fetch_assoc($channel_check))) {
            $varChannel .= "<input type='radio' name='channel' value='".$row['channel_name']."' /> ".$row['channel_name']." <br />";
            unset($row);
        }
        echo $varChannel;
    }
    ?>
    <input type='file' name='video' value='Upload Your Video'><br/>
    <input type='submit' name='submit' value='Upload'>

</form>
 

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
Hallo @hillepille

Herzlichen Dank für deine großartige Unterstützung.
Ich habe auf der phpinfo() leider keine Errordatei(Pfad) gefunden.
Danach habe ich eine neue Datei erstellt. Ich habe den Code hineingeschrieben alles ohne Fehler.
So habe ich angefangen den ganzen Upload Code in die neue Datei hineinzufügen.
Ich kam so weit bis ich den ersten Fehler bekam:

PHP:
<?php
include ( './includes/header.php' );
?>
<?php
if (isset($_FILES['video'])) {
  $title = $_POST['video_title'];
  $desc = $_POST['video_description'];
  $keywords = $_POST['video_keywords'];
  $privacy = @$_POST['privacy'];
  if (!empty($title) && !empty($desc) && !empty($keywords) && !empty($privacy)) {
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
   $video_id = substr(str_shuffle($chars), 0, 15);
   $video_id = md5($video_id);
  }
  else
  {
   die('empty fields');
  }
   if (($_FILES['video']['type']=='video/mp4')) {
   $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
   $random_directory = substr(str_shuffle($chars), 0, 15);

   if (file_exists('data/users/videos/' . $random_directory . ''.$_FILES['video']['name'])) {
     echo 'video exists';
   }
   else
   {

   move_uploaded_file($_FILES['video']['tmp_name'],'data/users/videos/' . $random_directory . ''.$_FILES['video']['name']);
   $img_name = $_FILES['video']['name'];
   $filename = "data/users/videos/".$random_directory.$_FILES['video']['name'];
   $md5_file = md5_file($filename);
   $check_md5 = mysql_query("SELECT file_md5 FROM videos WHERE file_md5='$md5_file'");
   if (mysql_num_rows($check_md5) != 0 && $deleted='no') {
     unlink($filename);
    die("This is a duplicate upload");
   }else {
     $date = date("F j, Y");
   $insert = mysql_query("INSERT INTO videos VALUES ('','$title','$desc','$keywords','$user','$privacy','$date','0','$video_id','','$filename','images/thumbnail.png','no')");
   mysql_query("UPDATE videos SET file_md5='$md5_file' WHERE video_id='$video_id'");
   die('The video was uploaded successfully <a href="my_videos.php">Don\'t forget to add your thumbnail</a>');
   }
   }
   }
}
?>
<h2>Upload a Video</h2>
<form action='upload.php' method='POST' enctype='multipart/form-data'>
    Video Title: <input type='text' name='video_title' value='' /><br />
    Video Description:<br />
    <textarea rows='10' cols='40' name='video_description'></textarea><br />
    Video Keywords: <input type='text' name='video_keywords' value='' /><br />
    Privacy: <input type='radio' name='privacy' value='Public' /> Public &nbsp;&nbsp; <input type='radio' name='privacy' value='Private' /> Private<br />
    Choose your Channel: <br />
<?php
$db_connection = mysqli_connect("asdf.asdf.asdf","asdf","asdf","asdf");
    //$channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
    $sql_abfrage = "SELECT channel_name FROM channels WHERE created_by='".$user."'";
    $channel_check = mysqli_query($db_connection, $sql_abfrage);
    $numrows_cc = mysqli_num_rows($channel_check);

Als ich dann diesen Teil eingefügt habe:
HTML:
if ($numrows_cc == 0) {
//Wenn kein Channel erstellt wurde, dann fängst du das ja hier schon ab, daher brauchst du bei der Channelerstellung eigentlich keine If-Else-Verzweigung um zu chekcken, ob es überhaupt einen Channel gibt.
        'You havent made any channels yet, click the button to make one.';
    }
    else
    {
        $varChannel = "";
        while(FALSE !== ($row = mysqli_fetch_assoc($channel_check))) {
            $channel_name = $row['channel_name'];
            //Hier durchläufst du die Schleife mit den Channels, dann müssen hier auch die Radio-Buttons erstellt werden
            echo "<b>$channel_name</b> - <a href='channel.php?c=$channel_name'>View Channel</a> | <a href='channel_settings.php?c=$channel_name'>Channel Settings</a><p />";
            $varChannel .= "<input type='radio' name='channel' value='".$row['channel_name']."' /> ".$row['channel_name']." <br />";
            unset($row);
        }
        echo $varChannel;
    }
    ?>
    <input type='file' name='video' value='Upload Your Video'><br/>
    <input type='submit' name='submit' value='Upload'>

</form>

bekam ich wieder diese unglaublich wunderschöne Seite zu Gesicht:
Error 500: Script Execution Failure
Description: The server encountered an internal error or misconfiguration and was unable to complete your request.

Most common reasons for returning this error message are:

File Upload Mode
When you upload Perl, CGI scripts via FTP you should use always ASCII mode. If you get "Error 500: Script Execution Failure" you should check whether your FTP client uses ASCII mode when uploading your scripts, because if it uses BINARY mode to upload your scripts they won't work on the server. The problem caused by wrong upload mode is associated with the way different operating systems handle the "end of line" character. Unix system uses a "line-feed" (LF), Windows uses a "carriage-return" (CR) and "line-feed" (LF) pair. That's why it is very important that you set the uploading mode to ASCII.

File Permissions
When you upload scripts via FTP the file permissions are set by default to 755. If you get "Error 500: Script Execution Failure" you should check whether your scripts have 755 permissions. Otherwise your scripts have lower level of permissions and does not support execution upon request. The octal representation of the 755 permission is equal to the following textual format: -rwxr-xr-x
Most FTP clients support the CHMOD command which is used for setting file permissions. In case you have set improper permissions to your scripts, use your FTP client and set "Read, Write, Execute" permissions for the owner, "Read, Execute" permissions for the group and everyone else.

Script Errors
This is the third well known reason for getting "Error 500: Script Execution Failure" upon execution of your scripts. Check your scripts for any obvious syntax or programming errors to make sure your code is not broken.


Remember: When you get a "Error 500: Script Execution Failure", you should always check for any file uploading problems (ASCII/BINARY) and the executable permission settings. Once those are checked and verified, it looks like there is a syntax error or some other problem in the script.

So konnten wir nun den Fehler auf diesen Code reduzieren:

HTML:
if ($numrows_cc == 0) {
//Wenn kein Channel erstellt wurde, dann fängst du das ja hier schon ab, daher brauchst du bei der Channelerstellung eigentlich keine If-Else-Verzweigung um zu chekcken, ob es überhaupt einen Channel gibt.
        'You havent made any channels yet, click the button to make one.';
    }
    else
    {
        $varChannel = "";
        while(FALSE !== ($row = mysqli_fetch_assoc($channel_check))) {
            $channel_name = $row['channel_name'];
            //Hier durchläufst du die Schleife mit den Channels, dann müssen hier auch die Radio-Buttons erstellt werden
            echo "<b>$channel_name</b> - <a href='channel.php?c=$channel_name'>View Channel</a> | <a href='channel_settings.php?c=$channel_name'>Channel Settings</a><p />";
            $varChannel .= "<input type='radio' name='channel' value='".$row['channel_name']."' /> ".$row['channel_name']." <br />";
            unset($row);
        }
        echo $varChannel;
    }
    ?>
    <input type='file' name='video' value='Upload Your Video'><br/>
    <input type='submit' name='submit' value='Upload'>

</form>

Ja, unten ist so weit alles umgestellt.

Ich habe auch deinen Code:
PHP:
<?php
//include ('./includes/header.php');
$db_connection = mysqli_connect("localhost","asdf","asdf","asdf");

$user = "abcde";
?>
<h2>Upload a Video</h2>
<form action='upload.php' method='POST' enctype='multipart/form-data'>
    Video Title: <input type='text' name='video_title' value='' /><br />
    Video Description:<br />
    <textarea rows='10' cols='40' name='video_description'></textarea><br />
    Video Keywords: <input type='text' name='video_keywords' value='' /><br />
    Privacy: <input type='radio' name='privacy' value='Public' /> Public &nbsp;&nbsp; <input type='radio' name='privacy' value='Private' /> Private<br />
    Choose your Channel: <br />
    <?php

    //$channel_check = mysqli_query($db_connection, "SELECT channel_name FROM channels WHERE created_by=$user");
    $sql_abfrage = "SELECT channel_name FROM channels WHERE created_by='".$user."'";
    $channel_check = mysqli_query($db_connection, $sql_abfrage);
    $numrows_cc = mysqli_num_rows($channel_check);
    if ($numrows_cc == 0) {
        'You havent made any channels yet, click the button to make one.';
    }
    else
    {
        $varChannel = "";
  while(FALSE !== ($row = mysqli_fetch_assoc($channel_check))) {
            $varChannel .= "<input type='radio' name='channel' value='".$row['channel_name']."' /> ".$row['channel_name']." <br />";
            unset($row);
        }
        echo $varChannel;
    }
    ?>
    <input type='file' name='video' value='Upload Your Video'><br/>
    <input type='submit' name='submit' value='Upload'>

</form>
eingefügt. Ich bekam diesen Fehler:
Allowed memory size of 67108864 bytes exhausted (tried to allocate 66846715 bytes) in /srv/disk11/1807619/www/asdf.asdf.asdf/sql2.php on line 27
Welcher auf diese Zeile hinweist:
PHP:
$varChannel .= "<input type='radio' name='channel' value='".$row['channel_name']."' /> ".$row['channel_name']." <br />";

So ich hoffe das kann dir weiterhelfen, denn ich bin so ziemlich ahnungslos.

Vielen Dank
Kebab
 

Kebab

Boskoop
Registriert
22.02.15
Beiträge
39
Hallo @hillepille

Ein Wunder ist passiert.:p Ich habe es selbst geschafft.
Ich habe einfach jede Zeile ausprobiert bis ich merkte, dass es nur an einer Zeile liegt.
So sieht der untere Codeteil nun aus:
PHP:
    if ($numrows_cc == 0) {
//Wenn kein Channel erstellt wurde, dann fängst du das ja hier schon ab, daher brauchst du bei der Channelerstellung eigentlich keine If-Else-Verzweigung um zu chekcken, ob es überhaupt einen Channel gibt.
        'You havent made any channels yet, click the button to make one.';
    }
    else
    {
  
        $varChannel = "";
       // while(FALSE !== ($row = mysqli_fetch_assoc($channel_check))) {
       while($row = mysqli_fetch_assoc($channel_check)) {
            $channel_name = $row['channel_name'];
            $varChannel .= "<input type='radio' name='channel' value='".$row['channel_name']."' /> ".$row['channel_name']." <br />";
            unset($row);
        }
        echo $varChannel;
      
    }
    ?>
    <input type='file' name='video' value='Upload Your Video'><br/>
    <input type='submit' name='submit' value='Upload'>

</form>

So die Channels werden nun mit den Radiobuttons perfekt ausgegeben. Nun sollte auf dem Channel, welcher ausgewählt wird ein div erstellt werden, mit dem titel, dem Thumbnail und der videoid von dem Video, welches hochgeladen wird.

So eigentlich dachte ich, ich bräuchte nur bei diesem Teil Hilfe. Dies hat sich leider als falsch herausgestellt.
Kann mir jemand bei dem nun behilflich sein?

Und wie kann ich das mit dem löschen machen?
Angenommen 4 divs sind erstellt.
Dann lösche ich das 3te div. So sollten dann also alle divs weiterrutschen so das keine Lücke entsteht.
Wie soll ich das am einfachsten machen?


Ich dachte das ich die div's so mit diesem Code erstellt könnte:
HTML:
<div id="div1">The text above has been created dynamically.</div>
oder mit JS:
Code:
var newDiv = document.createElement("div");
  var newContent = document.createTextNode("Hi there and greetings!");
  newDiv.appendChild(newContent); //add the text node to the newly created div.

  // add the newly created element and its content into the DOM
  var currentDiv = document.getElementById("div1");
 
Zuletzt bearbeitet:

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, ich habs die letzten 2 Tage zeitlich einfach nicht geschafft, sorry. Heute sieht aber gut aus.
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, so ich habe mal ein Beispiel erstellt. Schau dir das mal genauer an. Den Code zur Erstellung des Divs für Video,.. habe ich zentral in eine Funktion ausgelagert, der ich das komplette Objekt des gewählten Radiobuttons übergebe. Wenn du dir dann die Funktion render_div anschaust siehts du auch wie du auf die einzelnen Attribut-Werte innerhalb des Objekts zugreifen kannst.


HTML:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="https://code.jquery.com/jquery-2.1.3.js"></script>
    <style type="text/css">
        #container_fuer_div{background-color: red;}
    </style>

</head>
<body>
<form>
    <label for="radioa"><input type="radio" class="radiv" name="radioa" id="radioa" data-id="1" value="10"/> Radio</label><br/>
    <label for="radiob"><input type="radio" class="radiv" name="radioa" id="radiob" data-id="2" value="20"/> Radio</label><br/>
    <label for="radioc"><input type="radio" class="radiv" name="radioa" id="radioc" data-id="3" value="30"/> Radio</label><br/>
    <label for="radiod"><input type="radio" class="radiv" name="radioa" id="radiod" data-id="4" value="40"/> Radio</label>
</form>
<!-- Beginn DIV in den dann der Inhalt gesetzt wird-->
<div id="container_fuer_div">

</div>
<!-- Ende DIV in den dann der Inhalt gesetzt wird-->
<script type="text/javascript">
    $( document ).ready(function() {
        $('.radiv').click(function(){
           $('#container_fuer_div').html(render_div($(this)));
        });
    });
    function render_div($obj){
        var str = '';
        str += '<div>';
        str += 'DATA-ID:' + $obj.attr("data-id");
        str += '<br/>';
        str += 'VALUE:' + $obj.attr("value");
        str += '<br/>';
        str += 'ID:' + $obj.attr("id");
        str += '</div>';
        return str;
    }
</script>
</body>
</html>

Damitt solltest du ja eigentlich die erforderlichen Variablen übergeben können. Auf das data-id-Attribut würde ich ggf. verzichten, das funzzt (soweit ich das ohne Nachschlagen weiß) nur mit HTML5-fähigen Browsern und ist nicht rückwärtskompatibel.
 
Zuletzt bearbeitet: