Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-02-2011, 17:58   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Formular - JSON-String per JQuery an PHP

Hallo! :-)

Ich habe mit Smarty und HTML Quickform ein Template erstellt, in dem ein Formular aufgerufen wird, was auch wunderbar klappt. Nun möchte ich allerdings die Daten aus diesem Formular mittels JSON per JSQUERY an eine PHP mit dem Namen "test.php" übergeben.

Die Frage ist, wie mache ich dies? Was für eine Function muss in dem Submit Button aufgerufen werden und wie sieht diese aus?

Über jegliche Hilfe würde ich mich sehr freuen! :-)
Waldmensch ist offline   Mit Zitat antworten
Alt 09-02-2011, 06:33   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Du meinst JQuery?

Ich würde das nicht machen. JSON ist nur gut umgekehrt vom Serve zum Client. Nimm serializeAray() und übertrage die Daten pe POST

Wie sende ich ein Formular per Mail
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 09-02-2011, 07:05   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Hey Nightflyer, vielen Dank für Deine Antwort!

Erste Kleinigkeit ist, dass es sich nicht um eine Mailfunktion handelt, sondern um einen Login. Und zweitens ist es leider so, dass ein JSON-String die Anforderung ist, da das CMS auf diese Art und Weise arbeitet.

P.S.: Ja, natürlich meinte ich JQuery, das war nur ein kleiner Vertipper.
Waldmensch ist offline   Mit Zitat antworten
Alt 09-02-2011, 07:18   #4 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
ok, dann halt

jquery-json - Project Hosting on Google Code
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 09-02-2011, 07:20   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Ah cool, das sieht sehr gut aus! Ich werde es nachher mal ausprobieren!

DANKE :-)
Waldmensch ist offline   Mit Zitat antworten
Alt 09-02-2011, 15:14   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Hmmm, also irgendwie komme ich mit dem Link nicht so klar. Könnte mir jemand erklären, oder einen Link senden, der erklärt, wie ich dieses Javascript nutze?
Eingebunden habe ich die Datei, aber die Funktion scheint nicht zu arbeiten... :-/

Gibt es vielleicht irgendwo ein Tut dafür?

Geändert von Waldmensch (09-02-2011 um 15:16 Uhr)
Waldmensch ist offline   Mit Zitat antworten
Alt 09-02-2011, 16:10   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Hab übrigens schon lange nach etwas Brauchbarem gegoogelt, aber nichts gefunden. Ist also keine mangelnde Selbstinitiative! ;-)
Waldmensch ist offline   Mit Zitat antworten
Alt 09-02-2011, 17:32   #8 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Zeig mal deine Website
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 09-02-2011, 18:28   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Folgend meine PHP-Datei:
PHP-Code:
<?php

    
require_once "HTML/QuickForm.php";

    
$form = new HTML_QuickForm('TestForm''get');
    
$form->applyFilter('__ALL__''trim');

   
$selectListArray = array( 'TM'   => 'Trend Micro ID',
          
'AID'     => 'Another ID' );

   
$form->addElement('select''Select'null$selectListArray);
      
$defaultValues['Select'] = array('TM');

   
$form->addElement('select''Select_multiple'null$selectListArray,array('size' => 2));     
   
$defaultValues['Select_multiple'] = array('TM');
   
   
$form->addElement('text''email''''vcard_name="vCard.Email" value="enter your email address" onfocus="this.value=\'\';"');
    
$form->addRule('email''E-Mail is required''email'null'client');
    
$form->addRule('email''E-Mail is required''required''enter your email address''client');
   
   
$form->addElement('password''password''''', array( 'size' => 40'maxlength' => 15));
    
$form->addRule('password''Password is required''required'null'client');
   
   
$form->addElement('checkbox''remember''Remember me');
    
$form->addElement('submit''Submit''Submit >');


    require_once 
'HTML/QuickForm/Renderer/ArraySmarty.php';
    require_once 
'C:/smarty/libs/Smarty.class.php';
   
    
$tpl =& new Smarty;
    
$tpl->template_dir 'templates';
   
   
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl);

    
$form->accept($renderer);
   

    
$tpl->assign('FormData'$renderer->toArray());


    
$tpl->display('index.tpl');

?>
Und hier mein Template:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
 <
head>
<
script src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script src="script/jquery.json-2.2.js"></script>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- CSS DATA -->

<title>Account Login Form</title>
 {* Emit any javascript from quickform *}
 {if $FormData.javascript}
     {$FormData.javascript}
 {/if}
</head>
<body style="margin:0px; padding:0px;">
   <!-- Account Login Form 1st Screen -->
    <div id="loginFormContainer">
       <!-- New here - container -->
        <div id="acf_newHereContainer">
           <h1>New here?</h1>
            <a href="#" title="Create a new account now">Create a new account now &gt;</a>
            <h3>It’s free and only takes a minute!</h3>
            <h5>Get complete access to:</h5>
            <ul>
               <li>Free trial downloads</li>
                <li>Community areas</li>
                <li>Members-only white papers and downloads</li>
                <li>On-demand Seminars</li>
            </ul>
        </div>
        <!-- Login - container -->
        <div id="acf_loginContainer">
           <h1>Login</h1>
            <form {$FormData.attributes}>
               <fieldset>
                    <!-- Input fields -->
                    <label>Please Select:<br/>{$FormData.Select.html}</label><label>{if $FormData.email.required}{/if}{$FormData.email.label}{$FormData.email.html}</label>
                    <label>Password:{if $FormData.password.required}{/if}{$FormData.email.label}{$FormData.password.html}</label>
                    <label><a href="#" title="Forgot your password?">Forgot your password?</a>{$FormData.Submit.html}{$FormData.Submit1.html}</label>
                    <label>{$FormData.remember.html}Remember me</label>
                </fieldset>
            </form>
        </div>
    </div>
 </div>
 </body>
</html> 
Waldmensch ist offline   Mit Zitat antworten
Alt 09-02-2011, 19:13   #10 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Zitat:
var thing = {plugin: 'jquery-json', version: 2.2};

var encoded = $.toJSON(thing); //'{"plugin":"jquery-json","version":2.2}'
steht doch da wie man es einbindet. Du musst schon eine Funktion in dein Template einbauen welche die Daten sendet:

Code:
function sendform(){

    $.post( 'login.php', $.toJSON( $('#loginformid').serializeArray() ), function(){
          alert( 'gesendet!' );
     }, 'json' );

}
Und jetzt musst du anstelle des Submit-Buttons einen Button machen der die Funktion ausführt

HTML-Code:
<button type="button" name="button" onclick="sendform()">Submit</button>
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 10-02-2011, 13:01   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Also, die Funktion habe ich jetzt über
HTML-Code:
<script src="js/testscript.js"></script>
eingebunden und sie sieht folgendermaßen aus:
HTML-Code:
function sendform(){

    $.post( 'test.php', $.toJSON( $('#TestForm').serializeArray() ), function(){
          alert( 'gesendet!' );
     }, 'json' );

}
test.php da an diese Datei ja gesendet werden soll
#TestForm, da es ja die ID meines Formulars ist...
  1. Das Script wird auch aufgerufen, sobald ich auf den Button klicke, da ich den Alert "gesendet!" bekomme, allerdings geht die Validierung von QuickForm dabei flöten, was natürlich nicht passieren darf, wie kann ich beides ausführen?
  2. Und wie kann ich mir die Daten dann anzeigen lassen? Ich habe eine Hilfe gefunden, bei der die php-Datei aufgerufen wird. Folgend sieht der Code aus:
    PHP-Code:
    $res json_decode($_REQUEST['data'], true);
    echo 
    json_encode($res); 
    Aber wie passe ich diese an meine an?

Sorry, dass ich so viele Fragen habe. Aber ich bin da wirklich Neuling. Dennoch macht mir das sehr viel Spaß! :-)
Waldmensch ist offline   Mit Zitat antworten
Alt 10-02-2011, 13:16   #12 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Zitat:
Zitat von Waldmensch Beitrag anzeigen
Sorry, dass ich so viele Fragen habe. Aber ich bin da wirklich Neuling. Dennoch macht mir das sehr viel Spaß! :-)
Und das ist doch die Hauptsache. Programmieren ist wie ein Rätselspiel...

1.) Was die Validierung von QuickForm angeht kann ich dir nicht helfen, weiss nicht was QuickForm da macht bzw. welche Code es generiert

2.)
PHP-Code:
print_r$json_decode$_POST ), true ); 
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 14-02-2011, 15:26   #13 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 42
Zitat:
Zitat von Nightflyer Beitrag anzeigen
var thing = {plugin: 'jquery-json', version: 2.2};

var encoded = $.toJSON(thing); //'{"plugin":"jquery-json","version":2.2}'
Wo genau kommt das denn hin? Immer, wenn ich es einfüge, wird mir keine Seite mehr dargestellt. Und muss thing noch in FormData unbenannt werden?
Waldmensch ist offline   Mit Zitat antworten
Alt 14-02-2011, 17:50   #14 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Das kommt nirgens hin, das ist nur zum testen bzw zeigt wie man die Funktion anwendet. Den entsprechenden Code hab ich bereits gepostet:

Code:
function sendform(){

    $.post( 'test.php', $.toJSON( $('#TestForm').serializeArray() ), function(){
          alert( 'gesendet!' );
     }, 'json' );

}
Installier mal die Firefox-Extension Firebug, das hilft ziemlich viel bei solchen Problemen
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JSON (pHp an As3) stevus ActionScript 3 2 29-07-2010 13:03
JSON String formatieren LePeng ActionScript 3 1 21-11-2008 14:58
Json As 2.0 schmi85 Flash CS3 Professional 2 23-06-2008 12:02
JSON-String an PHP richtig übergeben [welcher header?] psyk PHP und MySQL 2 20-08-2007 22:30
Json As darki777 Flash 8 2 30-11-2006 22:09


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele