Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Bei Onclick Zahl in php ändern ohne Seite neuzuladen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Bei Onclick Zahl in php ändern ohne Seite neuzuladen

    Hallo Community,

    bin noch ein newbie in sachen js und bin deshalb an verzweifeln.
    ich würde gerne per onclick eine zahl in einer variable ändern ohne die seite zuladen.

    hier einmal mein code bis jetzt:

    PHP-Code:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>

    <script type="text/javascript">
    <?php for($i=1$i 31$i++)
        {
    ?>
    function KatBox<?php echo $i?>()
      {
        document.getElementById('kat_box_<?php echo $i?>_addbox').style.display = 'none';
        document.getElementById('kat_box_<?php echo $i+1?>').style.display = 'block';
        document.getElementById('kat_box_<?php echo $i+1?>_addbox').style.display = 'block';
        
        return false;
      } 
    <?php
        
    }
    ?>

    </script>
    </head>

    <body>

    <?php 

    $zahl    
    0// DIESE ZAHL SOLL BEI ONCLICK +1
    $anzahl $zahl 1;

    for(
    $i=0$i $anzahl$i++)
        {
    ?>
    <div id="kat_box_<?php echo $i?>" style="display: block;">
    <table border="0" width="600" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#000000">
        <tr>
            <td width="110">Kategorie<?php echo $i?>:</td>
            <td width="160"><input type="text" size="20" name="kategorie_name<?php echo $i?>"/></td>
            <td width="30"><b>Url:</b></td>
            <td><input type="text" size="50" name="kategorie_url<?php echo $i?>" /></td>
        </tr>
        <tr >
            <td colspan="4" height="5"></td>
        </tr>
    </table>
    </div>

    <div id="kat_box_<?php echo $i?>_addbox" style="display: block;">
    <table border="0" width="600" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#000000">
        <tr>
            <td colspan="4" height="5" align="right"><a href="" onclick="return KatBox<?php echo $i?>();" style="text-decoration:none; font-weight:bold; color:#666666;">Kategorie hinzufügen</a></td>
        </tr>
         <tr>
            <td colspan="4" height="5" align="right"></td>
        </tr>
    </table>
    </div>
    <?php
        
    }
    ?>

    </body>
    </html>
    Wenn man auf den Link Kategorie Hinzufügen klickt soll ein neues input feld erscheinen bis es max 30 felder sind. Jedoch weis ich jetzt nicht wie ich einen Zahl an JS übermitteln kann und diese zahl dann in einer PHP Variable ausgeben kann.

    Wäre über jeden Tipp sehr dankbar.

  • #2
    Mit deinem aktuellen Ansatz, über PHP mit Javascript zu kommunizieren, wirst du nicht weit kommen. Du könntest dir stattdessen eine Javascript-Funktion schreiben, die dir ein zusätzliches Formularfeld hinzufügt.

    Ich habe das auch mal benötigt: Funktionsgraphen zeichnen - hallophp.de . Vielleicht hilft dir der Code (siehe Quelltext) etwas weiter!

    Ansonsten könntest du noch einen HTTP-Request über Ajax senden.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Code:
      function KatBox<?php echo $i; ?>()
      Und bitte keine variablen Funktionsnamen erzeugen! Das ist hochgradiger Unfug - Funktionen werden parameterisiert:
      Code:
      function KatBox(boxIndex)
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Danke für den Tipp Asipak, habe mir das mal angeschaut und mal was versucht eigenes gebastelt,hat alles wunderbar geklappt, jedoch habe ich wieder ein problem und zwar wie bekomme ich jetzt das so hin, das wenn ich ein inhalt aus der DB abfrage,das mir das script soviele inputfelder anzeigt mit den inhalt wie in der db enthalten sind.

        hier einmal mein script:
        PHP-Code:
        <script type="text/javascript">
        <!--

           var 
        count_1 0;

           function 
        clone_1(obj)
           {
              if(
        count_1 == 29) return;
              var 
        tmpNode obj.parentNode.getElementsByTagName('div')[0].cloneNode(true);
              
        tmpNode.getElementsByTagName('a')[0].style.display 'inline';
              var 
        tmpElm document.createElement('input');
              
        tmpElm.type tmpNode.getElementsByTagName('input')[0].type;
              
        tmpElm.name tmpNode.getElementsByTagName('input')[0].name;
              
        tmpNode.replaceChild(tmpElm,tmpNode.getElementsByTagName('input')[0]);
              
        obj.parentNode.insertBefore(tmpNode,obj);
              
        count_1++;

           }

           function 
        remove_this_1(obj)
           {
                
        obj.parentNode.removeChild(obj);
              
        count_1--;
           }
        //-->
        </script>
        </head>
        <body>
        <form method="POST" action="test2.php" id="test">
         <div>
          <label>Kategorie: </label><input name="test[]" type="text" />
          <label>Url: </label><input name="abc[]" value="http://" type="text" />
          <a href="#" onclick="remove_this_1(parentNode)" style="display:none; ">löschen</a>
         
         </div>
         <a href="#" onclick="clone_1(this)">noch eins</a>

        <input type="submit" value="senden" />
        </form> 
        wäre nett wenn mir einer dabei helfen könnte.

        Kommentar


        • #5
          Hi.

          Ich sehe keine DB Abfrage, oder bin ich blind?!? Die abgefragten Werte, musst Du einfach in einer Schleife ausgeben und erstellst bei jedem Schleifendurchlauf deine InputBox - dann stimmt auch die Anzahl.

          Wolf29
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar

          Lädt...
          X