kostenloser Webspace werbefrei: lima-city


Felder dynamisch mit JS ändern

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Hey,

    dieses Script sollte eigentlich aus einer DB die ID, den Titel, und den Text auslesen und dann je nach Auswahl der ID in der Dropdown liste den Text und inhalt in 2 input feldern anzeigen (den text in einer textarea).
    Die ID zeigt es an, aber den titel und inhalt nicht...

    <html>
    <head>
        <title>test</title>
    
    </head>
    <body>
    <?php
    
    $mysqlhost="localhost";          
    $mysqluser="mipzlul :D";         
    $mysqlpwd="ihopeucantseeit :)";     
    $db="datenbankname";            
    
    
    
    if (!$con=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd))
    {
    die("Verbindung zum Server: Nein" . mysql_error());
    }
    
    ?>
    
    <script type="text/javascript">
    function ausfuellen()
    {
    var startthis = document.getElementById('optionsfeld').value
    eval(startthis);}
    function eintragen(id,wert)
    {
    document.getElementById(id).value=wert;
    }
    </script>
    
    <form action="newsscript.php" method="post">
    <select name="cvbmnjfj" onChange="ausfuellen();" id="optionsfeld">
    <option value="eintragen(nr1,feld1);eintragen(nr2,)"> </option>
    
    
    <?php
    mysql_select_db("$db") or die ("Database doesn't exist");
    $result = mysql_query("SELECT id, titel, inhalt FROM newsscript ORDER BY id DESC");
    while($row = mysql_fetch_array($result))
    {
    $titel = $row['titel'];
    $inhalt = $row['inhalt'];
    $id = $row['id'];
    ?>
    <option value="eintragen(nr1,<?php echo "$titel"; ?>);eintragen(nr2,<?php echo "$inhalt"; ?>)"><?php echo "$id"; ?></option>;
    <?php
    }
    ?>
    <br>
    
    </select>
    <input type="Text" name="asdf" value="" id="nr1">    <br>
    <input type="Text" name="lol" value="" id="nr2">   <br>
    <input type="Submit" name="submitbutton" value="werte ändern">
    </form>
    </body>
    </html>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. portal715 schrieb:
    Hey,
    dieses Script sollte eigentlich aus einer DB die ID, den Titel, und den Text auslesen und dann je nach Auswahl der ID in der Dropdown liste den Text und inhalt in 2 input feldern anzeigen (den text in einer textarea).
    Die ID zeigt es an, aber den titel und inhalt nicht...


    Der Grund dürfdte sein das das Du nr1 & nr2 ohne Gänsefüsschen übergibst.
    So denkt js das es variabeln sind.

    <option value="eintragen('nr1','<?php echo $titel; ?>');eintragen('nr2','<?php echo $inhalt; ?>')">


    ungetestet

    Beachte die ' '

    Edit ich habe mir erlaubt die Gäsefüsschen im Echo zu entfernen, informiere Dich mal wann ' und " in php und javascript nötig sind (bzw wofür)

    Beitrag zuletzt geändert: 2.11.2010 23:07:29 von simuliertes
  4. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    DANKE :)
    ich hatte die davor schonmal dran aber irgendwie hab ich die weggemacht als ich rumprobiert hab :D

    noch ein kleineres problem, wenn ich einen zeilenumbruch im text hab dann zeigt es den text nicht an.
    ich glaube das liegt daran (nl2br)

    da gibts bestimmt auch was oder?

    (zu sehen auf http://portal715.bplaced.de/changebyid/script.php nummer 4 kann man nicht wirklich anwählen)

    Beitrag zuletzt geändert: 2.11.2010 23:24:04 von portal715
  5. portal715 schrieb:



    da gibts bestimmt auch was oder?

    (zu sehen auf http://portal715.bplaced.de/changebyid/script.php nummer 4 kann man nicht wirklich anwählen)

    Umbrüche (im quelltext) solltest du an diese stelle ganz vermeiden.
    <br> ist in input/option/text-felder auch wirkungslos.
    bzw.
    input und option-felder erlauben never ever Umbrüche.
    ABER
    textarea erlaubt umbrüche in der form \n
    Wahrschenlich musst du aber folgendes schreiben \\n
    Grund: \ ist dafür da Steuerzeichen einzuleiten oder zu verbergen.
    Um im html code ein \ zu haben, muss im php code \\ - stehen.

    Kurze & informative Lektüre dazu:
    http://tut.php-q.net/de/output.html -Steuerzeichen in php
    http://de.selfhtml.org/javascript/sprache/notationen.htm -Steuerzeichen in javascript

    edito:
    Wenn Du firefox hast wähle mal Extras->Fehlerkonsole.
    Dort werden DIr alle javascript-fehler angezeigt.
    Und eine erklärung warum 4 "nicht reagiert"

    Fehler: unterminated string literal
    Quelldatei: http://portal715.bplaced.de/changebyid/script.php
    Zeile: 12, Spalte: 40
    Quelltext:
    eintragen('nr1','Test');eintragen('nr2','Test<br />



    Beitrag zuletzt geändert: 3.11.2010 17:16:13 von simuliertes
  6. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    Umbrüche (im quelltext) solltest du an diese stelle ganz vermeiden

    und durch /n ersetzen?

    <br> ist in input/option/text-felder auch wirkungslos.

    letztendlich soll das script ja auf einer website eingebaut werden und da sind zeilenumbrüche u-ä. ja fast pflicht

    gibt es anstatt von nl2br nicht auch eine funktion von php die alle zeilenumbrüche in einem inputfeld automatisch zu /n umwandelt, mit denen hätte ich ja dann keine probs mehr :)

  7. portal715 schrieb:
    Umbrüche (im quelltext) solltest du an diese stelle ganz vermeiden

    und durch /n ersetzen?


    Wie gesagt:
    in input-tags kannst Du sowieso keine zeilenumbrüche benutzen.
    Also nicht DORT.
    in textare-tags aber schon.
    im html-code verwendest du selbstverständlich weiterhin <br> bei texten.
    Soweit ich weiss gibt es keine funktion die zeilenumbrüche in "\\n" umwandelt, da müsstest Du dir eine funktion für selber schreiben.
    Bzw mit str_replace
    so in etwa:
    $deintext = str_replace('\n','\\n',$deintext);


    Beachte das unterschiedliche regeln für html-php und javascript -code bestehen.
    Ich gebe Dir mal einen Beispielcode um die Unterschiede deutlich zu machen:
    <html><head></head>
    <body>
    <?php
    echo "Hallo <br>\n umbruch<br>";
    echo "Hallo <br>\\n umbruch<br>";
    echo "Hallo
     umbruch<br>";
    echo  '<script type="text/javascript">';
    echo "document.write(\"<textarea>Hallo <br>\\n umbruch<br></textarea>\");";
    echo "document.write(\"Hallo <br>\\n umbruch<br>\");";
    echo 'document.write("Hallo <br>\\n umbruch<br>");';
    echo  '</script>';
    ?>
    <script type="text/javascript">
    document.write("Hallo <br>\n umbruch<br>");
    document.write("Hallo <br>\\n umbruch<br>");
    </script>
    Hallo <br>\n umbruch<br>
    <textarea>
    Hallo <br>\n umbruch<br>
    </textarea>
    </body>
    </html>


    schau Dir dabei auch mal den kompilierten html-quellcode an, wo dort umrüche sind...

    Beitrag zuletzt geändert: 3.11.2010 17:52:41 von simuliertes
  8. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    okay,

    hier komm ich nicht mehr weiter
    ich muss bestimmt nur irgendwo was escapen
    finds nur nicht
    sitzt schon 3 stunden dran -.-

    while($row = mysql_fetch_array($result))
    {
    $titel = $row['titel'];
    $inhalt = $row['inhalt'];
    $id = $row['id'];
    $inhalt = str_replace('<br />','\\n',$inhalt);
    ?>
    <option value="eintragen('nr1','<?php echo $titel; ?>');eintragen('nr2','<?php echo $inhalt; ?>')"><?php echo "$id"; ?></option>;
    <?php
    }
    ?>


    Fehler: unterminated string literal
    Quelldatei: http://portal715.bplaced.de/changebyid/script.php
    Zeile: 12, Spalte: 40
    Quelltext:
    eintragen('nr1','Test');eintragen('nr2','Test\n


    Beitrag zuletzt geändert: 4.11.2010 17:21:37 von portal715
  9. portal715 schrieb:
    okay,

    hier komm ich nicht mehr weiter
    ich muss bestimmt nur irgendwo was escapen
    finds nur nicht
    sitzt schon 3 stunden dran -.-



    var startthis = document.getElementById('optionsfeld').value;
    eval(startthis);}


    Ich denke da fehlt ein ;

    Klick mal bei der Fehlermeldung auf die Meldung. Dadurch springst Du in der Quellcode-anzeige direkt auf den Ursprung des Fehlers. :wink:

    Beitrag zuletzt geändert: 4.11.2010 20:08:29 von simuliertes
  10. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    hmm bei mir im script ist das ; drin

    ich glaub eher dass es an
    <option value="eintragen('nr1','Test');eintragen('nr2','Test\\n
    mit Leerzeichen\\n
    Nextdingens')">4</option>;


    demhier liegt oder?
  11. Achso.
    Ja klar liegts daran.
    Try & Error sag ich nur.
  12. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    logisch wärs ja, weil der fehler in der funktion ist.
    deshalb zeigt er auch auf die funktion, aber die funktion ist ja nur wegen diesen backslashes falsch bzw wird dadurch falsch.

    ich brauch im javascript den code sodass ich im php ein \n bekomme...
    bringst des hin? :P
  13. Ja \\n ist schon richtg.
    Nur muss es sein:

    <option value="eintragen('nr1','Test');eintragen('nr2','Test\\nmit Leerzeichen\\n

    statt
    <option value="eintragen('nr1','Test');eintragen('nr2','Test\\n
    mit Leerzeichen\\n


    ich dachte das wäre klar :smile:

    //das
    echo "blup \n sagsagh";
    //und das
    echo "blup 
     sagsagh";
    //sind exakt das gleiche in der Ausgabe

    ..deswegen machst Du ja zwei \\

    Beitrag zuletzt geändert: 4.11.2010 21:53:30 von simuliertes
  14. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    hmm ja soweit hab ichs verstanden, aber wie bekomm ichs so wie oben hin?!

    €dit:
    <form action="newsscript.php" method="post">
    <p>Titel:</p>
    <br>
    <input type="text" name="titel" size="24" maxlength="100">
    <p>Inhalt:</p>
    <br>
    <textarea name="newstext" rows="10" cols="50"
    </textarea>
    <br>
    <input type="submit" value="Hinzufügen">
    </form>
    
    <?php
    $id = $_SESSION['login'];
    $oldtitel = $_POST["titel"];
    $oldinhalt = $_POST["newstext"];
    $titel = nl2br($oldtitel);
    $inhalt = nl2br($oldinhalt);
    
    
    
    if($titel and $inhalt != "")
     {
        mysql_select_db("$db") or die ("Die Datenbank existiert nicht, bitte wende dich an den Serveradministrator bzw. Provider");
    
        $eintrag = "INSERT INTO script
                  (name, titel, inhalt)
                VALUES
                  ('$id', '$titel','$inhalt')";




    Beitrag zuletzt geändert: 5.11.2010 8:50:40 von portal715
  15. :shy:

    nl2br — Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein

    Die Zeilenumbrüche sind natürlich immer noch da .
    simuliertes schrieb:
    Wie gesagt:
    in input-tags kannst Du sowieso keine zeilenumbrüche benutzen.
    Also nicht DORT.
    in textare-tags aber schon.
    im html-code verwendest du selbstverständlich weiterhin <br> bei texten.
    Soweit ich weiss gibt es keine funktion die zeilenumbrüche in "\\n" umwandelt, da müsstest Du dir eine funktion für selber schreiben.
    Bzw mit str_replace

    so in etwa:
    $deintext = str_replace('\n','\\n',$deintext);


    und..
    simuliertes schrieb:
    //das
    echo "blup \n sagsagh";
    //und das
    echo "blup 
     sagsagh";

    //sind exakt das gleiche in der Ausgabe


    So, alles wurde bereits gesagt. Alle Lösungen genannt.
    Viel Erfolg, das war's für diesen Threat von meiner Seite.

    Beitrag zuletzt geändert: 5.11.2010 10:10:28 von simuliertes
  16. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.


    Die Zeilenumbrüche sind natürlich immer noch da

    ja ich brauch nur den code für die zeilenumbrüche, dann kann ich ja mit dem str_replace den code durch \\n ersetzen. ich find aber nirgendwo den code dafür...

    und wenn ich den code für die zeilenumbrüche hab ist des ja auch kein problem mehr

    //sind exakt das gleiche in der Ausgabe

    ist mir auch klar, bis auf dass dass es so nicht wirklich geht,...
    <option value="eintragen('nr1','Test');eintragen('nr2','Miep
    Miep')">2</option>;


  17. wow, das geht ja wirklich nicht mit str_replace.
    Hab ich mal rumgeschlaumeiert ohne es selber zu überprüfen.
    Kurz gegoogelt
    http://www.easy-coding.de/regular-expressions-auch-mit-zeilenumbruechen-t5877.html

    .und das ist das Ergebniss:
    <?php
    $test = " hallo usw
    und so fort und dann noch  \n und weiteres
    
    in disem \n sinne, agfag
    sgs
    
    sadgsaghsahgs";
    
    $test = preg_replace("/[\x0D\x0A]+/", " ", $test);
    echo "<textarea cols=150 rows=4>";
    echo $test;
    echo "</textarea>";
    
    ?>


    Dann darfst Du nun nach den html,php und javascript-umbrüchen also noch die regular-expressions-Umbrüche kennenlernen.
    Aber was genau /[\x0D\x0A]+/ bedeutet wird Dir sicher egal sein solange es läuft :-P
  18. Autor dieses Themas

    portal715

    Kostenloser Webspace von portal715

    portal715 hat kostenlosen Webspace.

    ehrlich gesagt ja :)

    mir gehn die fragen echt nie aus :D
    <option value="eintragen('nr1','Hallo');eintragen('nr2','Test')">1</option>;


    kann man es irgendwie (möglichs einfach natürlich :) ) schaffen dass man die id ( in diesem fall 1) per post übergeben kann?

    $id = $_POST_select

    oder so :D

    €dit:
    hab grad was gefunden,
    <select name="TreFaISO_1"
    ist das dann die variable?


    Beitrag zuletzt geändert: 5.11.2010 22:40:08 von portal715
  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!