Ergebnis 1 bis 4 von 4

Thema: Variable Anzahl Formularfelder an Javascript/PHP-Funktion übergeben

  1. #1
    Azubi(ne)
    Registriert seit
    22.01.2007
    Beiträge
    74
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Variable Anzahl Formularfelder an Javascript/PHP-Funktion übergeben

    Hallo allerseits,

    ich habe auf einer Webseite mithilfe von xajax Ajax-Funktionalität mit PHP umgesetzt. Nun habe ich ein Formular und möchte entprechend einer bestimmten Aktion dann Ajax-Code ausführen. Bis dahin kein Problem. Ich definier mir entsprechend eine PHP-Funktion, die dann den Code ausführt. Ich kann auch der Funktion Javascript-Variablen übergeben, die dort verarbeitet werden können. Die Umwandlung meiner PHP-Funktion übernimmt das Xajax-Objekt. Nun zu meinem eigentlichen Problem:
    Ich habe ein Formular welches aus Datenbankfeldern aufgebaut wird und dementsprechend auch immer anders aussehen kann. Je nach Kardinalität der Tabelle sind in dem Formular eine Menge von Checkboxen zu sehen, wobei der Nutzer davon mehrere anhaken kann. Wie kann ich nun beim Aufruf der Ajax-Funktion dieser eine variable Menge an Parametern (angehakte Checkboxen) bzw. ein Array aus allen angehakten Checkboxen übergeben? Gibt es da eine Javascript-Funktion? Oder hat jemand eine andere Idee, wie ich das umsetzen kann?
    Wenn mein Problem nicht verstanden wurde, dann einfach nochmal nachfragen.

    Gruss chuqa
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Azubi(ne)
    Registriert seit
    30.10.2008
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Variable Anzahl Formularfelder an Javascript/PHP-Funktion übergeben

    Zitat Zitat von chuqa Beitrag anzeigen
    Hallo allerseits,

    ich habe auf einer Webseite mithilfe von xajax Ajax-Funktionalität mit PHP umgesetzt. Nun habe ich ein Formular und möchte entprechend einer bestimmten Aktion dann Ajax-Code ausführen. Bis dahin kein Problem. Ich definier mir entsprechend eine PHP-Funktion, die dann den Code ausführt. Ich kann auch der Funktion Javascript-Variablen übergeben, die dort verarbeitet werden können. Die Umwandlung meiner PHP-Funktion übernimmt das Xajax-Objekt. Nun zu meinem eigentlichen Problem:
    Ich habe ein Formular welches aus Datenbankfeldern aufgebaut wird und dementsprechend auch immer anders aussehen kann. Je nach Kardinalität der Tabelle sind in dem Formular eine Menge von Checkboxen zu sehen, wobei der Nutzer davon mehrere anhaken kann. Wie kann ich nun beim Aufruf der Ajax-Funktion dieser eine variable Menge an Parametern (angehakte Checkboxen) bzw. ein Array aus allen angehakten Checkboxen übergeben? Gibt es da eine Javascript-Funktion? Oder hat jemand eine andere Idee, wie ich das umsetzen kann?
    Wenn mein Problem nicht verstanden wurde, dann einfach nochmal nachfragen.

    Gruss chuqa
    Ich hab mich schonmal ein wenig mit der XAJAX Klasse beschäftigt, die ist eigentlich ganz lustig^^ Am besten du schreibst uns mal den Code
    Der frühe Vogel fängt den Wurm,
    aber die zweite Maus bekommt den Käse.

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.01.2007
    Beiträge
    74
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Variable Anzahl Formularfelder an Javascript/PHP-Funktion übergeben

    Nunja ich versuch mal was zusammen zustellen:
    Also das Formular baut sich eben nach einer Datenbankabfrage auf. Es entsteht eine Tabelle die in jeder Zeile ein Tupel der Relation enthält, also ungefähr wie folgt :
    HTML-Code:
    ...
    while ($row = $entriesView->fetch()){
                    $str.= "<tr>";
                    $str.= "<td><input type='checkbox' name='id_".$row['id']."' value='".$row['id']."' /></td>";
                    $str.= "<td>".$row['user']."</td>";
                    $str.= "<td>".date("d.m.Y H:i", strtotime($row['zeitpunkt']))."</td><td>".limitEntry($row['entry'])."</td>";
                    if ($row['status'] == 1){
                        $str.= "<td class='cell_center'>ja</td>";
                    } else {
                        $str.= "<td class='cell_center'>nein</td>";
                    }
                    if ($row['initial'] == 1){
                        $str.= "<td class='cell_center'>ja</td>";
                    } else {
                        $str.= "<td class='cell_center'>nein</td>";
                    }
                    $str.= "</tr>\n";
                }
    Wie man sehen kann, befindet sich am Anfang jeder Zeile eine Checkbox. Nun möchte ich beim Klicken eines Buttons eine Funktion aufrufen, mit deren Hilfe ich dann die Tupel alle selektierten Checkboxen entsprechend bearbeiten kann. Der Button könnte ungefähr so aussehen:
    HTML-Code:
    <button name='btn_send' value='Ausf&uuml;hren' onclick='xajax_doAction(--Parameter???--)' />
    Die Xajax-Code erklärt sich dann ja von allein:
    PHP-Code:
    $xajax = new xajax();
    $xajax->registerFunction("doAction");
    function 
    doAction($checkedValues){
       for(
    $i=0;$i<count($checkedValues); $i++){
          
    // tu irgendwas mit $checkedValues[$i]...
       
    }
    }
    $xajax->processRequest(); 
    Der PHP-Code und der Aufruf des Xajax-Objektes damit das Ajax-Spezifische ausgeführt wird, ist auch nicht das Problem. Ich müsste eigentlich nur wissen, wie ich die angehakten Checkboxen auslesen und im onclick-Ereignis des Buttons als Parameter der Funktion übergeben kann. Als Array ist nur eine Idee von mir, gut möglich, dass das so nicht möglich ist...

  4. #4
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.01.2007
    Beiträge
    74
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Variable Anzahl Formularfelder an Javascript/PHP-Funktion übergeben

    Also ich denke, ich habe eine ganz gute Lösung gefunden. Nach Recherche der Xajax-Doku bin ich auf die Funktion xajax.getFormValues gestoßen, die als Parameter die ID des entsprechenden Formulars bekommt. Sie liefert alle Elemente des Formulars als Array. So kann ich beim Betätigen des Senden-Buttons meine Xajax-Funktion aufrufen, die dann entsprechend die Daten des Formulars auswertet:
    HTML-Code:
    <input type='submit' value='Ausf&uuml;hren' onclick="xajax_verarbeiteFormular(xajax.getFormValues('form_id'))" />
    Das action-Attribut im Formular gibt es nicht mehr, stattdessen wird das Absenden des Formulars abgebrochen:
    HTML-Code:
    <form id='form_id' name='entries' onsubmit='return false' method='post'>
    Den Namen der Checkboxen definiere ich mit dem entsprechenden Namen plus die Arrayklammern, so erhalte ich hinterher ein Array mit den ausgewählten Checkboxen:
    PHP-Code:
    "<input type='checkbox' name='id[]' value='".$row['id']."' />" 
    Die Definition meiner Xajax-Funktion sieht dann wie folg aus:
    PHP-Code:
    function verarbeiteFormular($data){

    In der Funktion kann ich dann über
    PHP-Code:
    $data['id'
    auf das Array zugreifen, welches alle angehakten Checkboxen enthält.

    Danke an alle, die sich um Hilfe bemüht haben

Ähnliche Themen

  1. Javascript variable übergeben
    Von Dicker1 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 27.11.2008, 16:09
  2. JavaScript: Per Funktion ein Objekt übergeben
    Von makroy im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 02.08.2008, 12:53
  3. PHP Variable an Javascript übergeben
    Von CoreDuo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 18.04.2008, 11:12
  4. Antworten: 4
    Letzter Beitrag: 16.11.2006, 11:54
  5. [JavaScript] Funktion, die eine Variable speichert, die ...
    Von dr. orange im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 05.10.2005, 18:02

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •