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 11.07.2011, 18:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Mühsam aber stetig ernährt sich das Eichhörnchen.
Genauso mühsam, wie es ist, Dir eine konkrete Problemstellung zu entlocken Sowas kommt von sowas.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.07.2011, 18:38  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Genauso mühsam, wie es ist, Dir eine konkrete Problemstellung zu entlocken Sowas kommt von sowas.
Dann hier noch eine konkrete Problemstellung:

Mir ist gerade aufgefallen, dass im Originalcode nur ein Formular mit mehreren Submit-Buttons existiert:

PHP-Code:
<form action="next.php" id='antwortwahl'>
<
button name='Antwortwahl' id='form_1' value='1'>Wählen (1)</button>
<
button name='Antwortwahl' id='form_2' value='2'>Wählen (2)</button>
</
form
Da funktioniert das Ansprechen wie oben nicht, daher habe ich es so versucht, klappt aber nicht:
PHP-Code:
document.forms["antwortwahl"].elements['form_2'].submit(); 
Muss ich das dann grundsätzlich anders angehen oder wo liegt der Fehler?
Shen ist offline   Mit Zitat antworten
Alt 11.07.2011, 18:42  
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 Shen Beitrag anzeigen
PHP-Code:
document.forms["antwortwahl"].elements['form_2'].submit(); 
Muss ich das dann grundsätzlich anders angehen oder wo liegt der Fehler?
Formulare kann man Absenden. Formularelemente nicht.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 11.07.2011, 18:43  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.865
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

erstmal: Brech dir nicht die Finger mit purem JS, nutze Frameworks die "was du willst" auch Crossbrowser-Tauglich für dich realisieren. Die Beispiele von mir hier, sind für die aktuellste Version von jQuery, aber vorab noch ein paar Anmerkungen:

Forms, Forms, Forms, it should be only one Form available to rule them all!

Forms sind dazu gedacht eine Menge an Daten an ein Script zu übergeben, den ganzen Quelltext mit Forms zuzukleistern die eigentlich nur immer einen Wert an xy.php übergeben hat in etwa soviel Sinn als würdest du die Banane wiegen, streicheln und vermessen bevor du sie essen würdest. Wirst du nicht lange machen. Ersetze solche "Single Data"-Forms gegen entsprechende <a>-Tags, und übergibs einfach explizit per GET, ob du nun da einen Button hast, oder ein a Tag der wie einer aussieht, oder ein <button>-Tag der sogar ein Button ist, aber nicht zwingend in einem Formular rumliegen muss.

Here we go:

Legen wir die Buttons an, 2 Stück als Beispiel, beide vom Typ "button", damit kein submit-verhalten im browser assoziiert wird ( default verhalten aller Browser außer IE ):

buttons.html
HTML-Code:
<button type="button" id="btn1">Mr. Clickor 1</button>
<button type="button" id="btn2">Mr. Clickor 2</button> 
Hauchen wir den Buttons leben ein, als Beispiel 2 Methoden:

Die "AJAX"-Methode: Don't reload, just submit and load a new snippet.

Die "Display-fläche":
index.html
HTML-Code:
<div id="displayDevice"></div> 
Der Javascript-Source:
HTML-Code:
<script type="text/javascript">
$(document).ready(function(){

   // load first snippet
   $.get('script_root.php', { action: 'getTheCoolFirstSnippet' }, function(data) {
      $('#displayDevice').html(data);
   }, 'html');

   // assign events

   // button CLICKs
   $('#btn1').click(function(){
      $.get('script_a.php', { weNowSubmit: 'Mr. Clickor 1 has spoken' }, function(data) {
         $('#displayDevice').html(data);
      }, 'html');
   });

   $('#btn2').click(function(){
      $.get('script_b.php', { weNowSubmit: 'Mr. Clickor 2 has spoken' }, function(data) {
         $('#displayDevice').html(data);
      }, 'html');
   });

   // more events for keyboard control
   // ... c() o() d() e() ...

   // navigation keys welche buttons "drücken" sollen registrieren hier nicht nochmal
   // die function sondern trigger()'n das jeweilige click()-event des Buttons. Fertig.

});
</script> 
Die "Lad alles neu und submitte via get"-Methode:

Das displayDevice-DIV wird hierbei nicht gebraucht, da pack dann entsprechend den HTML-Code der gesehen werden soll bei den Zielen der Scripts hin.

HTML-Code:
<script type="text/javascript">
$(document).ready(function() {

   // button CLICKs
   $('#btn1').click(function() {
      window.location.href = 'script_a.php?weNoSubmit=this';
   });

   $('#btn2').click(function() {
      window.location.href = 'script_b.php?weNoSubmit=that';
   });

   // more events for keyboard control
   // ... c() o() d() e() ...

   // navigation keys welche buttons "drücken" sollen registrieren hier nicht nochmal
   // die function sondern trigger()'n das jeweilige click()-event des Buttons. Fertig.

});
</script> 
Die Summe insich besagt: wenn du eh etwas ins GET-Request fürs nächste Script reinnagelst, kannst du das auch direkt per "link" tun, nichts anderes tun die beiden Snippets hier.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 11.07.2011, 23:01  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Formulare kann man Absenden. Formularelemente nicht.
Ah, ja erklärt so einiges

@tr0y
Die Forms dafür zu "missbrauchen" ist sicher nicht die sauberste Art, aber extra ein fettes jquery-Framework einzubinden stufe ich für meine Zwecke als übertrieben ein. Ich benötige JS-Funktionen ausschließlich für die o.g. Zwecke und das von mir zusammengeschusterte Script läuft zumindest in allen derzeit aktuellen Browserversionen.
Shen ist offline   Mit Zitat antworten
Alt 11.07.2011, 23:47  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.865
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Deine Entscheidung. Trotzdem: "Write less, do more."
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 12.07.2011, 01:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Also wenn Dein Form nur den Button enthält, dann brauchst Du auch kein Form, sondern kannst alles über

GET-Link
Ajax-POST-oder-whatever-Request

machen.

[edit] Mist, das hat Troy ja alles schon geschrieben
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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
Reihemfolge von Submit Button bestimmen noop PHP Einsteiger 9 07.07.2011 15:38
Formular 1 wurde verändert, Formular 2 Submit muss dies erkennen smilla JavaScript, Ajax und mehr 2 28.03.2010 21:26
Formular nach SUBMIT nicht leeren?? Dome90 PHP Tipps 2010 11 29.01.2010 13:47
Submit Button mit Bild, per Click anderer Button the-rod JavaScript, Ajax und mehr 3 26.06.2009 17:52
[Erledigt] submit button mit bild problem Webby HTML, Usability und Barrierefreiheit 19 02.03.2009 23:54
[Erledigt] submit button wechseln wenn sid in DB vorhanden fulltilt PHP Tipps 2009 5 20.02.2009 16:32
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
Formular abschiken ohne Submit Button shocky HTML, Usability und Barrierefreiheit 10 02.11.2006 21:53
Formular nach absenden leeren Rotti HTML, Usability und Barrierefreiheit 5 27.05.2006 18:38
[Erledigt] formular aus anderem Frame absenden HTML, Usability und Barrierefreiheit 3 26.01.2006 15:37
mehrfaches absenden von Formular verhindern nieselfriem PHP Tipps 2005-2 1 24.08.2005 13:50
Variable aus Formular ohne submit Button übergeben PHP Tipps 2005-2 3 24.06.2005 17:08
formular übergeben ohne button me HTML, Usability und Barrierefreiheit 1 21.12.2004 14:56
Formular: Vorschau und Absenden in einem PHP Tipps 2004 3 04.11.2004 09:19
formular button linkt an interne Stelle PHP Tipps 2004 1 08.06.2004 10:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
webbrowser submit buttons mit tastendruck, per javascript zweiten submit button drücken, javascript zwei button drücken, quelltext send button, ajax \ snippets\, formular per hyperlink abschicken, button, formular submit per klick, javascript form action mehrere button, javascript submit button drücken, form mit 2 submit java

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:19 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