Problem mit PHP

01/17/2014 12:28 VarmintLP#1
Hallo liebe Community

Ich habe ein Problem mit meiner PHP Datei.
Das Ziel meiner Datei sollte sein, dass ich einen Text in eingeben, auf einen Knopf klicken und dann wird der eigegebene Text in eine neue Reihe gesetzt. Danach kann man einen neuen Text eingeben und diesen in die nächste Reihe setzen.

Hier ist mein momentaner Code, meinen ersten Code haben.

PHP Code:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="ISO-8859">
    <title>PHP Aufgabe</title>
  </head>                                                                          
  <body>                                                
    
    <h1>Tabellentests</h1>
    <?php
      $Name 
$_GET["x"];
      
$Preis $_GET["y"];
    
?>
    <p id="demo"></p>
    <script type="text/javascript">
       function addRow(tableID) {

            var table = document.getElementById(tableID);

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);

            var cell1 = row.insertCell(0);
            var element1 = document.createElement("input");
            element1.type = "checkbox";
            cell1.appendChild(element1);

            var cell2 = row.insertCell(1);
            cell2.innerHTML = rowCount + 0;

            var cell3 = row.insertCell(2);
            var element2 = document.createElement("input");
            element2.type = "text";
            element2.value = '<?php echo $name;?>';
             element2.size = "15";
            cell3.appendChild(element2);

            var cell4 = row.insertCell(3);
            var element3 = document.createElement("input");
            element3.type = "text";
            element3.size = "25";
            element3.disabled = "disabled";
            cell4.appendChild(element3);

            var cell5 = row.insertCell(4);
            var element4 = document.createElement("input");
            element4.type = "text";
            element4.size = "3";
            element4.disabled = "disabled";
            cell5.appendChild(element4);

            var cell6 = row.insertCell(5);
            var element5 = document.createElement("input");
            element5.type = "text";
            element5.size = "3";
            element5.disabled = "disabled";
            cell6.appendChild(element5);

            var cell7 = row.insertCell(6);
            var element6 = document.createElement("input");
            element6.type = "text";
            element6.size = "5";
            cell7.appendChild(element6);

            var cell8 = row.insertCell(7);
            var element7 = document.createElement("input");
            element7.type = "text";
            element7.size = "5";
            cell8.appendChild(element7);

            var cell9 = row.insertCell(8);
            var element8 = document.createElement("input");
            element8.type = "text";
            element8.size = "10";
            cell9.appendChild(element8);

            var cell10 = row.insertCell(9);
            var element9 = document.createElement("input");
            element9.type = "submit";
            element9.value = "Update";
            cell10.appendChild(element9);




        }

        function deleteRow(tableID) {
            try {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;

            for(var i=0; i<rowCount; i++) {
                var row = table.rows[i];
                var chkbox = row.cells[0].childNodes[0];
                if(null != chkbox && true == chkbox.checked) {
                    table.deleteRow(i);
                    rowCount--;
                    i--;
                }

            }
            }catch(e) {
                alert(e);
            }
        }
        
      function displayResult()
      {
        var Name = "<?php echo $Name?>"; 
        var Preis = "<?php echo $Preis ?>"; 
        var table = document.getElementById("Table");
        var row = table.insertRow(0);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        cell1.innerHTML = Name;
        cell2.innerHTML = Preis;
      }
      document.write();
      
      document.getElementById("demo").innerHTML="Testtext: " + Name + ".";
      
      
                                                                                        
                                                                                        
                                                                                        

    </script>
    
    <?php
                                                                                        $stack 
= array("Orange""Banane");
                                                                                        
                                                                                        
array_push($stack"Apfel""Himbeere");
                                                                                        
                                                                                        
print_r($stack);
      echo
"
      <button type='button' onclick='addRow()'>Add</button>
      <button type='button' onclick='deleteRow()'>Del</button>
      <button type='button' onclick='displayResult()'>Hinzufügen</button><br>
      <table border='1'>
        <tr>
          <td>
            Name
          </td>
          <td>
            Preis
          </td>
        </tr>
        <tr>
          <td>
            <input type='text' name='x'>
          </td>
          <td>
            <input type='text' name='y'>
          </td>
        </tr>
      </table>
      
      <br>
      <table id='Table' border='1'>
        
      </table>"
;
    
?>
    
    
  </body>
</html>
Sorry weiß nicht mehr wie das mit dem Spoiler geht.

Würde mich über eure Hilfe freuen
Gruß Varmint

P.S.: Beispiele tuns eigentlich auch
01/17/2014 13:09 Hyukisawa#2
Ich kenne mich mit JQuery nicht so wirklich aus, aber was auffällt ist das hier keine Form zum abschicken benutzt wird.

du willst die daten mit GET kriegen das heißt du musst eine Form haben die, die Methode $_GET benutzt.
da ich echt selten mit JQuery bzw eigentlich nie Arbeite kann ich zu dem JQuery script nicht viel sagen.

´mit dem input type = submit übergibt er die GET Daten,
weiter kann ich dir hier leider nicht helfen ^-^ da ich JQuery nicht kann, und nicht genau weiß wie das Script Funktionieren soll...
Falls du das Irgendwo her hast wie in einem Tutorial wäre dies Hilfreich zu verlinken dann könnte ich dir mehr helfen =)

aber vielleicht hilft dir das schon mal ein stück weiter
01/17/2014 15:05 Muddy Waters#3
Quote:
Originally Posted by ci40pg View Post
Ich kenne mich mit JQuery nicht so wirklich aus, aber was auffällt ist das hier keine Form zum abschicken benutzt wird.
Wo genau siehst du hier jQuery? :confused:



Wobei das Stichwort jQuery gar nicht mal so schlecht ist: Darfst du jQuery verwenden oder musst du das mit nativem JavaScript lösen? Mit jQuery könnte man das nämlich wesentlich eleganter lösen.

Ein paar generelle Anmerkungen:
  • Du deklarierst derzeit für alles mögliche neue Variablen (mit einzigartigem Namen). Das solltest du vermeiden, deklariere nur soviele Variablen, wie du tatsächlich benötigst und verwende diese wieder, sofern es möglich ist. Dadurch sparst du Speicherplatz und in der Theorie wird die Performance besser, weil der Garbage Collector weniger Ressourcen freigeben muss. (merkt man bei dieser Anwendung nun nicht, du solltest aber dennoch versuchen, alles immer so performant wie möglich zu gestalten)
  • Dein Code ist teils extrem redundant und damit schwer nachvollziehbar. Wenn du eine extrem ähnliche Operation immer wieder durchführst, solltest du den Code dafür nach Möglichkeit in einer Funktion unterbringen. Willst du es noch übersichtlicher, rufst du die Funktion in einer Schleife auf.
  • Deine Funktionen deleteRow() und addRow() erwarten jeweils ein Argument, für das kein Standardwert festgelegt wird, für das du aber gleichzeitig nie einen Wert übergibst.
  • Du solltest beiden Eingabeelementen ein eindeutiges ID-Attribut zuweisen, damit du diese via DOM auf simple Weise referenzieren kannst.
  • Aus meiner Sicht hast du kein PHP-Problem, sondern ein JavaScript-Problem. ;)
01/17/2014 15:51 Hyukisawa#4
Sorry Muddy Waters, meinte javascript :S
für mich ist beides gleich :D und ja ich weiß es ist nicht gleich aber auf den ersten blick sah es für mich so aus da ich mich mit beiden nicht auskenne :S
kam der fehler zustande sorry danke fürs korrigieren

naja und es gab halt ein problem mit der übergabe der $_GET Methode.
01/24/2014 08:39 VarmintLP#5
Also die Aufgabe verlangt jedenfalls dass ich mit PHP diese Tabelle erstelle. HTML, CSS und Javascript dürfen auch genutzt werden. Habe schon eine so eine Art Tabelle als Idee aber da ich seit nem guten Monat kein PHP etc. hatte, muss ich mich wieder einarbeiten.