php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2011, 02:02  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard [Erledigt] jQuery UI $.post(URL, Data) || Data als Variable übergeben nicht möglich ?

Guten Abend nochmals

Es geht um $.post aus dem jQuery UI Framework.

Ich habe mir eine custom Function gebaut, worin $.post vorkommt, hier einen Ausschnitt zur Problemstellung:

PHP-Code:
$.postpostURLpostData
                                    function(
data){
                                        
alert(postData);
                                        }
                                    }
                                ) 
ich rufe die Funktion worin dies steht wie folgt auf:

PHP-Code:
funktion_name"./processor.php", {case_name'case_1'testentry_1document.new_breakrule.testentry_1.value} ); 
Bis ich das hatte vergingen Minuten... (halbe Stunden...) denn JS scheint sehr wählerisch zu sein worin {} stehen und was er wann als String interpretiert.

Wie dem auch sei, das Problem liegt darin, dass document.new_breakrule.testentry_1.value als "nichts" (leerer String) interpretiert wird.

Wenn ich postData direkt in die Funktion schreibe klappt alles tadellos, sobald ich diese aber "extrahiere" (siehe oben) und mir mit alert von der processor.php ausgeben lasse sagt mir diese dass nichts übergeben wurde.

Ich habe versucht Dinge mit ", ' zu schreiben und auch die {} drinnen stehen zu lassen und nur den Inhalt zu extrahieren (Was jedoch nichts bringt, da er dann alles als String interpretiert).

Wenn ich document.new_breakrule.testentry_1.value auf eine Zahl wie z.B. 412 ändere, wird dies auch tadellos übergeben...

Woran kann es liegen dass er mir einfach nichts (!) ausgibt/weitergibt ?
Es ist doch nichts außergewöhnliches...


Edit://
Eine weitere Bemühung schlug ebenfalls fehl:
PHP-Code:
                var data = {};
                
data[case_name] = 'case_1';
                
data[testentry_1] = document.new_breakrule.testentry_1.value;
                
dialogBox_Dialog"./processor.php"data ); 
Quelle:
http://stackoverflow.com/questions/1...a-post-problem

Geändert von dreamcatcher (25.03.2011 um 02:16 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.03.2011, 02:19  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Bis ich das hatte vergingen Minuten... (halbe Stunden...) denn JS scheint sehr wählerisch zu sein worin {} stehen und was er wann als String interpretiert.
Das, was du als „wählerisch“ bezeichnest, nennen andere Leute schlicht und einfach definierte Syntax ... vielleicht solltest du dich mit deren Grundlagen noch mal ein bisschen beschäftigen.

Zitat:
ich rufe die Funktion worin dies steht wie folgt auf: [...]
Es gelingt mir nicht, zwischen den beiden gezeigten Codeschnippseln einen für das Problem relevanten Zusammenhang zu erkennen.

Zitat:
Woran kann es liegen dass er mir einfach nichts (!) ausgibt/weitergibt ?
Keine Ahnung, um das beurteilen zu können, müsste erst mal Code vorliegen, der das Problem nachvollziehbar macht.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 25.03.2011, 02:32  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Siehe Anhang.

Ich habe mein bestes gegeben und alles unnötige elemeniert, so dass nur der Code drinnen ist, der wirklich gebraucht wird.

Nebenbei:
Bzgl. striker Syntax hast du natürlich Recht.

Ich hatte mich nur gewundert dass ich nicht" {postData} " schreiben konnte, aufgrund der vorgeschriebenen Syntaxregel dass in {} immer eine Wertzuweisung vorkommen muss und nicht eine einzige Variable stehen darf .
Angehängte Dateien
Dateityp: zip post_for_php_net.zip (79,2 KB, 17x aufgerufen)

Geändert von dreamcatcher (25.03.2011 um 02:40 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 25.03.2011, 02:57  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Ich habe mein bestes gegeben und alles unnötige elemeniert, so dass nur der Code drinnen ist, der wirklich gebraucht wird.
Zu dem Zeitpunkt, wo du deine Funktion mit
Code:
$(function(){...});
ausführen lässt, steht schlicht und einfach noch nichts drin im Formularfeld - das Formular wurde zu diesen Zeitpunkt ja noch nicht mal dem Benutzer angezeigt.

Ergo liefert document.new_breakrule.testentry_1.value genau das, was es bei einem leeren Text-Inputfeld liefern muss - einen Leerstring.

Hättest du auch ganz einfach Testen können, in dem du das Formularfeld schon im HTML-Code mit einem value ausstattest - dieses wird dann nämlich problemlos an dein PHP-Script geschickt. (Natürlich nur das value, welches zum Zeitpunkt des Aufrufs obiger Funktion bereits im HTML stand - auf eine nachträgliche Änderung des Feldinhaltes durch den Nutzer reagiert diese längst ausgeführte Funktion selbstverständlich nicht mehr.)
Zitat:
Ich hatte mich nur gewundert dass ich nicht" {postData} " schreiben konnte, aufgrund der vorgeschriebenen Syntaxregel dass in {} immer eine Wertzuweisung vorkommen muss und nicht eine einzige Variable stehen darf .
Natürlich, { ... } ist die Kurz-Notation für die Deklaration eines Object.
Und Objects haben Member, die einen Bezeichner und einen Wert haben.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 25.03.2011, 03:52  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Problem ist verstanden... es handelt sich um einen Logikfehler.

Meine Überlegungen sind recht simpel, die Variable darf erst ausgewertet werden, so bald man auf "Speichern" klickt.

Jedoch befindet sich genau dieses "Speichern" Event in dem großen .dialog Komplex, so dass ich dann dies nicht extrahieren kann.

Nach weiteren 1 stündigen googlen denke ich mit relativer Sicherheit sagen zu können dass es keine Möglichkeit gibt dies in einem Ein-/Zweizeiler zu erledigen, aufgrund der Tatsache dass es im "Save" Event geschrieben werden muss, welchen man nicht extrahieren kann.

Schade.


Danke Chris, hab heute ne Menge gelernt dank dir

Ich gucke es mir nach dem aufstehen noch einmal an... vllt. bin ich jetzt auch nur zu müde um es zu "sehen".

Anmerkung:
http://stackoverflow.com/questions/1...alog-jquery-ui

Scheint das gleiche Problem zu haben wie ich... gab aber auch keine Lösung (Er hat es schlecht beschrieben)
dreamcatcher ist offline   Mit Zitat antworten
Alt 25.03.2011, 08:32  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

du kannst doch in deinem Dialog , extra buttons einfügen mit funktionen. Ich habe ja zb hier auch sowas ähnliches:

http://dev.cruel-online.de

wenn du dort eine Map erstellst, öffnet sich ein Modal Dialog , du trägst was ein und nach dem klicken auf speichern, wird ein ajax request ausgeführt. Oder habe ich dein Problem falsch verstanden?

EDIT: evenutell hilft das auch noch?

http://api.jquery.com/serializeArray/
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 26.03.2011, 02:16  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Danke dir BlackScorp, jedoch ist das nicht des Problems Lösung.

Es geht darum, dass ich einen "Custom Dialog" habe, welchen ich als Funktion aufrufen möchte
(ohne den gesamten Dialog immer wieder schreiben zu müssen obwohl sich nur 3 Werte ändern).

PHP-Code:
            $(function(){

                
/**
                * Name: dialogBox_Dialog
                * Info: Show a custom dialog box
                * 
                * @seperator Seperator for i.ex. div container
                * @postURL $.post request URL
                * @postData Posted vars/data
                */

                
function dialogBox_Dialog (seperatorpostURLpostData) {
                    $(
seperator).dialog({
                        
autoOpenfalse,
                        
buttons: { 
                            
"Save": function(){

                                
//Custom closure for $.post function()
                                
var thisDialog this;

                                $.
postpostURLpostData
                                    function(
data){
                                        if (
data == 'Successfully updated') {
                                            
alert('postData: '+postData+'  ||  response: '+data);
                                            $(
thisDialog).dialog('close');
                                        } else {
                                            
alert('postData: '+postData+'  ||  response: '+data);
                                            $(
thisDialog).dialog('close');
                                        }
                                    }
                                )
                            }
                        }
                    })
                };
                
                
                
/************************************************************/
                /*                          Custom                          */
                /************************************************************/
                
                
                /////// Hier kommt der Fehler... wenn document.new[...] durch eine Zahl ersetzt wird kommt auch die richtige Response von der processor1.php
                /////// wenn der gesamte Teil nach oben kopiert wird mit den {} geht es auch einwandfrei
                
dialogBox_Dialog"#dialog""./processor1.php", {case_name'case_1'testentry_1document.new_breakrule.testentry_1.value} );

                $(
'#dialog_link').click(function(){
                    $(
'#dialog').dialog('open');
                    return 
false;
                });
            }); 
Problem hierbei ist, wenn ich es wie folgt aufrufe:

PHP-Code:
dialogBox_Dialog"#dialog""./processor1.php", {case_name'case_1'testentry_1document.new_breakrule.testentry_1.value} ); 
Problem:
testentry_1: document.new_breakrule.testentry_1.value liefert einen leeren String, da die function() schon vorher aufgerufen wird bevor das Dokument überhaupt angezeigt wird.

Ergo benötige ich etwas, was .value neu auswertet so bald die function aufgerufen wird...

Leider habe ich bisher nichts gefunden.

Aus function(){ [Content] } herausnehmen kann ich es auch nicht, da ansonsten der Dialog nicht initialisiert wird.



Kurz und knapp das Problem:
Wie kann ich einem customDialog als function einen Parameter mitgeben, ohne dass dieser vor (!) klicken auf den entsprechenden Button ausgewertet wird ?

Ich habe es mir für 1 Stunde noch mals angeschaut und bin zu dem Ergebnis gekommen dass dies rein von der Logik nicht möglich ist ohne den das Event des "Save Buttons" zu extrahieren.

Jedoch kann ich einzelne Buttons aus dem Dialog nicht extrahieren bzw. der Sinn der Function (Weniger Schreibarbeit und ein + an Übersicht) geht damit verloren...
dreamcatcher ist offline   Mit Zitat antworten
Alt 26.03.2011, 02:32  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Den Save-Onclick-Event benutzt du doch schon Da, wo du den post Request absetzt. Wenn du jQuery/ jQueryui benutzt, brauchst du auch solche Konstrukte a la
Zitat:
document.new_breakrule.testentry_1.value
nicht mehr.

Hier mal 2 links:
http://www.slideshare.net/1Marc/jquery-essentials
http://ejohn.org/apps/workshop/intro/#0
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 26.03.2011, 02:41  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

... entschuldigt bitte, falls ich mich unklar ausgedrückt habe.

Es geht darum, dass document.new_breakrule.testentry_1.value vorher ausgewertet wird und der "Betrag" in das onSave Event geschrieben wird.

Das ist der Tatsache geschuldet, dass alles in einem function(){ [Content] } Konstrukt gebaut ist.

Ich benötige aber den aktuellen Wert von document.new_breakrule.testentry_1.value und nicht den, welcher darin steht bevor die Webseite überhaupt vollständig geladen ist.

Hier nochmal der Link zum Beispielscript und man wird sehen, dass die Variable nicht so ausgelesen wird, wie man es möchte (Es wird nur ein leerer String zurückgegeben):

Link

Geändert von dreamcatcher (26.03.2011 um 03:01 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 26.03.2011, 03:17  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Nochmal: "Save" => function () { // .. wird ausgeführt, wenn button geklickt

Verwende doch einfach serialize und jQuery Selektoren - die 2 Tutorials sollten dir das näher bringen.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable übergeben mkn PHP Tipps 2010 12 24.09.2010 19:06
Pfad als Variable übergeben Slikey PHP-Fortgeschrittene 5 28.07.2010 13:19
[Erledigt] Wert einer Variable an einen Link übergeben horni23 PHP Tipps 2010 11 10.04.2010 00:32
Variable an ein Input Feld übergeben. Rubio JavaScript, Ajax und mehr 5 18.03.2010 08:25
Variable einer Seite übergeben Sharker PHP Tipps 2009 6 30.09.2009 11:47
Variable übergeben mit Register Globals off trunky PHP Tipps 2008 32 08.07.2008 20:30
[Erledigt] Variable wird nicht übergeben Thorsten PHP Tipps 2008 8 24.05.2008 11:57
variable übergeben philips PHP Tipps 2006 6 08.01.2006 18:36
Variable per URL übergeben krummzahn PHP Tipps 2005-2 8 07.10.2005 13:15
Session Variable über Hyperlink übergeben DannyD PHP Tipps 2004-2 2 07.11.2004 14:22
Variable nach $myrow[''] übergeben PHP Tipps 2004 2 20.10.2004 17:56
variable an andere php datei übergeben PHP Tipps 2004 18 19.09.2004 10:09
Variable übergeben me PHP Tipps 2004 14 31.08.2004 18:17
[Erledigt] Variable in URL übergeben, ohne dass man sie sieht? PHP Tipps 2004 4 17.07.2004 10:21
variable per link übergeben PHP Tipps 2004 22 25.06.2004 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery post data, jquery ui post, $.post jquery, jquery ui dialog post, post jquery variablen weitergeben, jquery ui url, jquery session übergeben, jquery post url, jquery php variable übergeben, jquery variable übergeben, post jquery, jquery $.post url as variable, jquery ui variable, jquery wert in session variable schreiben, jquery data variable, jquery serialize gibt leer zurück, var data jquery ui per post, jquery post variable auslesen, jquery variablen post nan, jquery post variable übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum