Rakedia: PHP / JS / HTML

Hallo,
eine Frage, ich muss in eine Datenbank mehrere Termin eintragen, das ist kein Problem, denn den Code habe ich schon, ich hänge gerade nur etwas am JavaScript, denn ich würde es gerne so machen, dass ich immer nur ein Feld standardmäßig ein Feld habe, wenn ich nun noch ein Feld mehr haben will, dann würde ich das gerne so machen, dass ich einfach auf mehr klicke und dann wieder ein Feld bekomme, kann mir da jemand helfen, da ich mit JS nicht so fit bin.

Hier mal der Code den ich bis jetzt haben, eine Tabelle und den PHP Code.

<?php
if(!empty($_POST))
{
    foreach ($_POST['termin'] as $Termin)
    {
        if (false === emtpy($Termin)
        {
    $Sql =
    "INSERT INTO mitglied
        SET
             termin1          = '" . sqlPrepare($Termin) . "'
            ,ip               = " . ip2long($_SERVER['REMOTE_ADDR']) . "
            ,datum            = NOW()
    ";
    mysql_query($Sql) or die('<pre>' . $Sql . '</pre>' . "\n\n" . mysql_error());
        }
    }
}
?>
    <tr>
      <td width="18%" scope="row">Termin1</td>
      <td width="82%"><input name="termin[]" type="text"></td>
    </tr>
    <tr>
      <td width="18%" scope="row">Termin2</td>
      <td width="82%"><input name="termin[]" type="text"></td>
    </tr>

Gruß,
Rakedia

  1. hi,

    denn ich würde es gerne so machen, dass ich immer nur ein Feld standardmäßig ein Feld habe, wenn ich nun noch ein Feld mehr haben will, dann würde ich das gerne so machen, dass ich einfach auf mehr klicke und dann wieder ein Feld bekomme

    Schon mal gesucht?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo,

      wenn du einfach zu faul bist eine Antwort zu schreiben, dann ignoriere doch einfach solche Beiträge denn die helfen einem rein gar nicht. Also bitte ich dich lass es einfach bleiben. Ich will von dir keine antwort mehr haben. Aber wie ich gerade so lese, bist du hier ja sehr sehr sehr sehr sehr unbeliebt.

      Gruß,
      Rakedia

      1. hi,

        wenn du einfach zu faul bist eine Antwort zu schreiben, dann ignoriere doch einfach solche Beiträge denn die helfen einem rein gar nicht.

        Ich hatte dir eine Such-Query verlinkt, die dir Archiv-Threads liefert, die sich explizit mit dem Thema deiner Frage beschäftigen sollten - also was machst du mich dafür so blöd an?

        Wenn diese dich nicht zu einer Lösung führen, oder noch etwas unklar ist - dann kannst du gerne noch mal nachfragen.

        Wenn du aber zu faul zum Nachlesen bist - dann kann man dir auch nicht helfen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hallo!

        wenn du einfach zu faul bist eine Antwort zu schreiben, dann ignoriere doch einfach solche Beiträge denn die helfen einem rein gar nicht.

        Wenn du zu faul bist, selber im Archiv zu suchen, dann musst du dich nicht darüber aufregen, wenn dir jemand auf die Sprünge hilft.

        Also bitte ich dich lass es einfach bleiben.

        Dieser Satz zeugt von viel Dummheit.

        Ich will von dir keine antwort mehr haben.

        Dieser ebenso.

        Aber wie ich gerade so lese, bist du hier ja sehr sehr sehr sehr sehr unbeliebt.

        Sagt wer? Irgendjemand, der zu blöd ist, umzu erkennen, dass ein äußerst hilfreicher Such-Query verlinkt wurde? Oder vielleicht jemand, der hier das erste mal ist, und nicht mag, wie wahsaga die hilfreiche Antwort formuliert hat? Bitte nachdenken, bevor hirn- bzw. grundlos rumgemeckert wird.

        ciao, ww

        --
        Schäuble:
          "Wir können alles. Außer Rechtsstaat."
  2. Hallo,

    so bin nun weiter gekommen und habe ein wenig gelesen:

    <?php
    if(!empty($_POST))
    {
       foreach ($_POST['termin'] as $Key => $Termin)
       {
           if (false === emtpy($Termin)
           {
       $Sql =
       "INSERT INTO mitglied
           SET
                termin           = '" . sqlPrepare($Termin) . "'
               ,beginn           = " . sqlPrepare($_POST['beginn'][$Key]) . "
               ,ip               = " . ip2long($_SERVER['REMOTE_ADDR']) . "
               ,datum            = NOW()
       ";
       mysql_query($Sql) or die('<pre>' . $Sql . '</pre>' . "\n\n" .
    mysql_error());
           }
       }
    }
    ?>

    <script type="text/javascript">
    <!--
    var z=1;
    function check(frm){
    for (var i=1;i<=z;i++){
    if(frm['name'+i].value==''){
    alert('Bitte geben Sie überall was ein!');
    frm['name'+i].focus();
    return false;
    }
    }
    }
    function machFeld(frm){
    z++;
    d=document.createElement('div');
    frm.insertBefore(d,document.getElementById('drueber'));
    i=document.createElement('input');
    i.name=i.id='name'+z;
    d.appendChild(i);
    }
    //-->
    </script>

    <a name="dummy"></a>
    <form name="form" action="#dummy" onsubmit="return check(this);">
        <input name="button" type="button" onClick="machFeld(this.form);" value="Feld hinzufügen">
        <input type="submit" name="Submit" value="Abschicken">
    <table width="100%" border="0">
      <tr>
        <td width="15%" scope="row"><input name="beginn[]" id="beginn[]"></td>
        <td width="85%"><input name="ende[]" id="ende[]"></td>
      </tr>
    </table>
    </form>

    So nun habe ich noch zwei kleine Probleme ich kann immer nur ein Feld nach unten erweitern, ABER es sollte immer beide Felder schön mit nach unten gehen und das zweite ist, dass ich die Felder nicht schön untereinader bekomme. Kann mir da noch jemand wenigstens helfen?

    Gruß,
    Rakedia

    1. Hallo!

      So nun habe ich noch zwei kleine Probleme ich kann immer nur ein Feld nach unten erweitern, ABER es sollte immer beide Felder schön mit nach unten gehen und das zweite ist, dass ich die Felder nicht schön untereinader bekomme. Kann mir da noch jemand wenigstens helfen?

      Was heißt hier wenigstens? ;-)

      Deine Probleme sind JavaScript-Probleme? Dann wäre es am besten, wenn du uns Quelltext zeigen würdest, der dein Problem darstellt. Am besten den Quelltext, der durch PHP an den Client ausgeliefert wird. Dann schauen wir mal, was sich machen lässt :)

      ciao, ww

      --
      Schäuble:
        "Wir können alles. Außer Rechtsstaat."
      1. Hallo,

        Deine Probleme sind JavaScript-Probleme? Dann wäre es am besten, wenn du uns Quelltext zeigen würdest, der dein Problem darstellt. Am besten den Quelltext, der durch PHP an den Client ausgeliefert wird. Dann schauen wir mal, was sich machen lässt :)

        allen Code den ich habe, habe ich in meinem letzten Posting gerade geschrieben, ich denke mal, aber ich muss gleich sagen dass ich von JS so gar keine Ahnung habe dieses das Problem sein könnte:

        function machFeld(frm){
        z++;
        d=document.createElement('div');
        frm.insertBefore(d,document.getElementById('drueber'));
        i=document.createElement('input');
        i.name=i.id='name'+z;
        d.appendChild(i);
        }

        Denn hier:

        <input name="button" type="button" onClick="machFeld(this.form);" value="Feld hinzufügen">

        wird ja die Funktion aufgerufen. In diesem Beispiel ist das ja mit einem Feld gemacht aber ich habe zwei das siehst du auch an meinem Code, der im letzten Posting steht. So dann eben noch das zweite Problem, dass die Felder alle schön untereinander stehen sollen und ein weing mehr Abstand dazwischen.

        Gruß,
        Rakedia

        1. Hallo!

          allen Code den ich habe, habe ich in meinem letzten Posting gerade geschrieben,

          Ja, aber ich habe keinen Bock, deinen mulschigen Quellcode zu durchsuchen. Deswegen meine Bitte.

          wird ja die Funktion aufgerufen. In diesem Beispiel ist das ja mit einem Feld gemacht aber ich habe zwei das siehst du auch an meinem Code, der im letzten Posting steht.

          Das ist das erste Problem? Wo ist deine Frage? Was ist das Problem?

          So dann eben noch das zweite Problem, dass die Felder alle schön untereinander stehen sollen und ein weing mehr Abstand dazwischen.

          Dann musst du eben deine Tabelle dynamisch erweitern. Und warscheinlich brauchst du CSS (margin & padding).

          ciao, ww

          --
          Schäuble:
            "Wir können alles. Außer Rechtsstaat."
    2. hi,

      So nun habe ich noch zwei kleine Probleme ich kann immer nur ein Feld nach unten erweitern, ABER es sollte immer beide Felder schön mit nach unten gehen

      Aus dem - was m.E. immer noch eher Gestammel, als denn eine brauchbare Problembeschreibung ist - schliesse ich mal, dass du für beide Felder, Beginn und Ende, jeweils ein weiteres Geschwister erstellen willst(?).
      Dann solltest du das auch tun -  derzeit erzeugst du nur _ein_ neues Input-Feld.

      und das zweite ist, dass ich die Felder nicht schön untereinader bekomme.

      Es wäre vielleicht auch ganz geschickt, weiterhin die strukturierenden Elemente um die neuen Felder zu setzen, du die auch schon um die bestehenden herumgebaut hast - sprich, Tabellenzellen und -zeilen.

      Kann mir da noch jemand wenigstens helfen?

      Dafür verkneifst du dir einen Tofall wie den eben aber bitte künftig, OK?

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo,

    habe es nun so gemacht:

    <?php
    if(!empty($_POST))
    {
    foreach ($_POST['beginn'] as $Key => $Bon)
      {
          if (false === emtpy($Von)
          {

    $Sql =
       "INSERT INTO veranstaltung
           SET
               beginn           = " . sqlPrepare($Beginn) . "
              ,ende             = " . sqlPrepare($_POST['ende'][$Key]) . "
       ";
       mysql_query($Sql) or die('<pre>' . $Sql . '</pre>' . "\n\n" . mysql_error());
           }
       }
    }
    ?>

    <script language="JavaScript">
    var counter = 3;
    function neuesfeld(id){
    counter++;
    var tbody = document.getElementById(id).
    getElementsByTagName("TBODY")[0];
    var row = document.createElement("TR");
    var td1 = document.createElement("TD");
    var input = document.createElement("input");
    input.name="beginn[]";
    input.id="beginn_"+counter;
    td1.appendChild(input);
    var input2 = document.createElement("input");
    input.name="ende[]";
    input.id="ende_"+counter;
    var td2 = document.createElement("TD");
    td2.appendChild(input2);
    row.appendChild(td1);
    row.appendChild(td2);
    tbody.appendChild(row);
    }
    </script>

    <form action="" method=post>
    <table width="80%" border="0" id="interessen">
    <tbody>
    <tr>
    <td width="17%"><input name="beginn[]" type="text" id="beginn[]"></td>
    <td width="83%"><input name="ende[]" type="text" id="ende[]"></td>
    </tr>
    </tbody></table>
    <table width="80%" border="0">
    <tr>
    <td width="99%"><input name="button" type="button" onClick="javascript:neuesfeld('interessen')" value="Feld hinzuf&uuml;gen"></td>
    </tr>
    </table>
    </form>

    Gruß,
    Rakedia