Aufruf von Sites (datei.php) ohne <a href=..>

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aufruf von Sites (datei.php) ohne <a href=..>

    Ist es möglich eine PHP-Datei ohne die Anweisung <a href="......"> aufzurufen? - So ähnlich der Klausel action="datei.php" in einem Formular!

    Die Sache ist so: Ich will ein Formular mit zwei SUBMIT-Buttons gestalten. Ein Button führt zu einem Such- und anschließendem Updtae-Script, und das andere Button führt zu einem Such- und anschließendem Anzeige-Script.

    Das heißt: Mein Hauptformular besteht aus nur zwei Eingabefeldern, dem Feld 'Produkt' und dem Feld 'Produktart'. Hier gebe ich meine Suchkriterien für die Suche in der Datenbank. Ich will keine (action="......") verwenden, weil ich zwei verschiedene Scripts aufrufe. Wenn man auf das Submit-Button 'Anzeigen' klickt, soll eine PHP-Datei mit SELECT-Anweisung und anschließendem Auflisten der gesuchten und gefundenen Daten aufgerufen werden. Und wenn man auf das Submit-Button 'Ändern' klickt, soll eine PHP-Datei mit SELECT-Anweisung und anschließendem neuen Formular für die Änderung (UPDATE) der gefunden Daten aufgerufen werden.

    IST SO ETWAS MÖGLICH?

    Danke im voraus für eure Anregungen!

  • #2
    Du kannst ja einfach einen Button machen... oder versteh ich was falsch?

    Code:
    <button onclick="self.location.href='testseite.php'">Anzeigen</button>

    Kommentar


    • #3
      Geht nur mit Javascript - mache zwei Buttons, deren onClick-Ereignis das Target des Formulars ändert (Ungefähr this.form.target="skript2.php") und abschickt (this.form.submit())

      Zuletzt geändert von pekka; 29.09.2004, 23:08.

      Kommentar


      • #4
        Original geschrieben von pekka
        Geht nur mit Javascript - mache zwei Buttons, deren onClick-Ereignis das Target des Formulars ändert (Ungefähr this.form.target="skript2.php") und abschickt (this.form.submit())
        wieso "target"? Du meinst doch "action" oder ich habe was verpasst
        [Test] MySQL cli Emulator

        Kommentar


        • #5
          wieso "target"? Du meinst doch "action" oder ich habe was verpasst
          Upps.... Zeit ins Bett zu gehen Hast natürlich Recht....

          Kommentar


          • #6
            ja ist eigentlich ne gute Idee, sowieso schon wieder zuviel Zeit hier verdaddelt
            [Test] MySQL cli Emulator

            Kommentar


            • #7
              Re: Aufruf von Sites (datei.php) ohne &lt;a href=..&gt;

              Original geschrieben von Armadi
              Ich will ein Formular mit zwei SUBMIT-Buttons gestalten. Ein Button führt zu einem Such- und anschließendem Updtae-Script, und das andere Button führt zu einem Such- und anschließendem Anzeige-Script.
              lass beide buttons das gleiche script "aufrufen", und entscheide in diesem, welche funktionalität weiter auszuführen ist.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Alle Ideen mit Javascript (onclick=".......") sind sehr gut und einsetzbar, wenn nicht die Validierung der Formularfälder wäre. Ich rufe in der FORM-Zeile eine Javascript, die die Eingabefelder validiert. Nun folgendes interessantes Phänomen:

                Wenn ich (irrtümlich oder absichtlich) die Submit-Buttons ohne Befüllung der Eingabefelder klicke, erhalte ich zwar die Meldung, dass die Felder zu befüllen seien, das Formular wird aber verlassen und die mit dem Submit-Button gelinkte PHP-Datei (Anzeigen oder Update) wird aufgerufen.

                Wenn ich aber die Felder befülle und dann auf die Submit-Buttons klicke, passiert gar nichts. Das heißt, die mit den Submit-Buttons gelinkten PHP-Dateien werden nicht aufgerufen.

                Hier mein Script:

                PHP-Code:
                <FORM name ="form" onsubmit="return checkForm(this);" method="post"><BR>
                <
                P>
                <
                SELECT size=1 name=produkt>
                    <
                OPTION value="" selected></OPTION>
                    <
                OPTION value=WD>WD</OPTION>
                    <
                OPTION value=HS>HS</OPTION>
                    <
                OPTION value=CI>CI</OPTION>
                    <
                OPTION value=PM>PM</OPTION>
                    <
                OPTION value=TR>TR</OPTION>
                </
                SELECT>

                <
                SELECT size=1 name=prodart>
                    <
                OPTION value="" selected></OPTION>
                    <
                OPTION value="HP">HP</OPTION>
                    <
                OPTION value="CM">CM</OPTION>
                    <
                OPTION value="KF">KF</OPTION>
                    <
                OPTION value="DP">DP</OPTION>
                    <
                OPTION value="SL">SL</OPTION>
                    <
                OPTION value="AL">AL</OPTION>
                    <
                OPTION value="GL">GL</OPTION>
                    <
                OPTION value="LD">LD</OPTION>
                    <
                OPTION value="SD">SD</OPTION>
                    <
                OPTION value="KP">KP</OPTION>
                    <
                OPTION value="BR">BR</OPTION>
                    <
                OPTION value="FL">FL</OPTION>
                    <
                OPTION value="PL">PL</OPTION>
                    <
                OPTION value="UB">UB</OPTION>
                </
                SELECT>

                <
                INPUT type="submit" name="suchen" onclick="self.location.href='sel_data_Produkte.php'" value="Anzeigen">&nbsp;&nbsp;
                <
                INPUT type="submit" name="update" onclick="self.location.href='upd_data_Produkte.php'" value="&Auml;ndern"

                Kommentar


                • #9
                  sorry aber das hier
                  onclick="self.location.href='sel_data_Produkte.php'
                  ist ja auch ein wenig .... ähmm ja, lassen wird das.
                  Was bewirkt "self.location.href" denn Deiner Meinung nach? Richtig, es wird die "sel_data_Produkte.php" geladen. Und warum sind keine Variablen verfügbar? Es hängen ja keine Parameter an der url...

                  Mache es so wie wahsaga oder pekka vorgeschlagen haben!
                  Ansonsten müßtest Du umständlich die Parameter auslesen und dann die url zusammenbauen -> also unnötiger Quatsch.
                  [Test] MySQL cli Emulator

                  Kommentar


                  • #10
                    Ja, du hast recht, es fehlen die Variablen (ich habe jetzt die Variablen übergeben). Aber es geht nicht darum. Es geht darum, dass die PHP-Dateien nicht aufgerufen werden (auch jetzt trotz Vraiblen-Übergabe), wenn ich das befüllte Formular mit Submot quitiere. Hingegen werden die PHP-Dateien schon aufgerufen, wenn ich das leere Formular mit Submit quitiere.

                    Es sieht so aus, dass ich nun den uneleganten Weg mit <a href="....."> wählen muss, wie es wahsaga vorgeschlagen hat. Diesen Weg wollte ich eigentlich vermeiden, deswegen wollte ich Submit-Buttons verwenden.

                    Kommentar


                    • #11
                      Original geschrieben von Armadi
                      Es geht darum, dass die PHP-Dateien nicht aufgerufen werden (auch jetzt trotz Vraiblen-Übergabe), wenn ich das befüllte Formular mit Submot quitiere. Hingegen werden die PHP-Dateien schon aufgerufen, wenn ich das leere Formular mit Submit quitiere.
                      deine submit-buttons lösen onclick in jedem falle einen seitenwechsel aus - zum abschicken des formulars kommt es gar nicht mehr.

                      Es sieht so aus, dass ich nun den uneleganten Weg mit <a href="....."> wählen muss
                      von einem html-link war doch gar nicht die rede?
                      kannst ganz normale submit-buttons dafür verwenden, und je nachdem welcher button gedrückt wurde, entscheidest du dann serverseitig, was zu tun ist.

                      ach ja, und dieser weg ist der elengante - dein versuch ist hingegen höchst unelegant ...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Entschuldige Wahsaga, ich meinte nicht, dein Weg sei unelegant, sondern meinen ursprünglichen Gedanken, mittels normaler Link und <a href="..."> hielt und halte ich immer noch für unelegant.

                        Ich wollte den Aufru der zwei verschiedenen Verarbeitungen direkt vom Formular aus bewirken und nicht durch gewöhnliche Link.

                        Kommentar


                        • #13
                          Original geschrieben von Armadi
                          Ich wollte den Aufru der zwei verschiedenen Verarbeitungen direkt vom Formular aus bewirken und nicht durch gewöhnliche Link.
                          ich glaube Du verstehst noch nicht wirklich was gemeint ist.

                          Wenn Du wahsagas Lösung nimmst funktioniert es auch ohne JavaScript ansonsten ist dies zwingend nötig was normalerweise eine schlechte Lösung ist.
                          [Test] MySQL cli Emulator

                          Kommentar


                          • #14
                            ich glaube Du verstehst noch nicht wirklich was gemeint ist!
                            Nein, nicht wirklich!

                            Wenn Du wahsagas Lösung nimmst funktioniert es auch ohne JavaScript ansonsten ist dies zwingend nötig was normalerweise eine schlechte Lösung ist.
                            Ich bin ja kein Profi, sondern nur ein mittelmässiger PHP-Könner; wäre wirklich lieb und dir dankbar, wenn du mir ein einen kleinen Code bimen würdst!

                            Kommentar


                            • #15
                              Also in deinem form machste einfach mit action="datei.php" die Datei aus, die dann geladen werden soll. Dann noch die zwei submits , z.b.
                              <input type="submit" name="submit1" value="Klick">
                              <input type="submit" name="submit2" value="Klick">
                              dann die datei.php machste so:
                              if(!empty($_POST['submit1']))
                              {
                              include("submit1.php");
                              }
                              elseif(!empty($_POST['submit2']))
                              {
                              include("submit2.php");
                              }

                              So hab ichs bisher gemacht, kann ich ja gleich mal die Gurus fragen, wie sollte ich es besser machen? hmm statt !empty einfach isset benutzen oder? Naja, so gut bin ich auch nicht in PHP. Sagt mal, wie mans am besten machen sollte.

                              Kommentar

                              Lädt...
                              X