1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Formularverabeitung AJAX/Prototype und PHP

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Demo, 02.08.06.

  1. Demo

    Demo Süssreinette (Aargauer Herrenapfel)

    Dabei seit:
    02.04.04
    Beiträge:
    411
    Ich hab eine kleine Frage zur Thematik AJAX resp. Prototype.

    Fangen wir mal von vorne an. Ich habe eine Liste mit Eintraegen (diese Eintraege bestehen aus einer Ueberschrift und einem Textkoerper, in der Liste werden aber nur die Ueberschriften angezeigt.). Wenn man auf die einzelnen Elemente der Liste klickt, oeffnet sich ein neues DivElement, das in Abhaengigkeit der Eintragsid den jeweiligen Textkoerper zeigt.
    In diesem Div ist ein Formular eingearbeitet, die Textarea zeigt den Textkoerper. Man kann also den Eintrag bearbeiten.
    Nun habe ich das Problem, dass das Formular immer die Seite im "action" Attribut aufruft.

    Der Code des Formulars:

    Code:
    /** schnipp **/
    	$str .= "<form action='../helper/news_ajax.php' method='POST'>";
    		$str .= "<input type='hidden' value='".$key['nid']."' name='id'/>";
    		$str .= "<textarea name='news_text'>".htmlentities($key['newsText'])."</textarea>";
    		$str .= "<input type='submit' name='ajax_submit' value='speichern' onclick='kat_save'/>";
    		$str .= "</form>";   
    
    
    Die JavaScriptfunktion:
    Code:
    function kat_save(){
    	var pars = 'cid='+escape($F('bews_text'))+'&nid='+escape($F('id'));
    	alert(pars);
    	new Ajax.Request("helper/kat_ajax_save.php", {
    	onSuccess: end_kat_save,
    	 onFailure : function(resp) {
    	   alert("Oops, there's been an error.");
    	 },
    	 parameters : pars
    	});
    }
    Nun ist die Frage, wie ich mit Prototype solche eine Formularverabeitung im Hintergrund laufen lassen kann ? Das entsprechende PHP Skript zum Speichern in der Datenbank funktioniert.

    Da ich im Anhang einen Screenshot poste, kann ich vielleicht das Ziel noch verdeutlichen: Nach Klick auf den 'Speichern' Button, soll sich das 'div' Element schliessen (display.style="none").

    Danke fuer eure Hilfe.
     

    Anhänge:

  2. Nogger

    Nogger Damasonrenette

    Dabei seit:
    05.11.05
    Beiträge:
    494
    Du mußt die Standardaktion des Knopfs unterdrücken.

    Code:
    
    onclick="kat_save.bindAsEventListener(this)"
    
    function kat_save(ev){
    ...
    Event.stop(ev);
    }
    
     
  3. Sid.TUX

    Sid.TUX Tydemans Early Worcester

    Dabei seit:
    20.08.05
    Beiträge:
    397
    Einfach die Action wegnehmen, also leer lassen und wie von Nogger schon geschrieben nen onclick Befehl mit dem JS Aufuruf rein machen, dann läd sich keine neue Seite sondern das JS holt im HIntergrund Daten.
     

Diese Seite empfehlen