[Variablen] Variable wird nicht übergeben?!? Oder doch?!?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] Variable wird nicht übergeben?!? Oder doch?!?

    Naja, was wären Probleme, wenn sie nicht schon fast chronisch auftreten
    würden?

    Nun habe ich folgendes: Ich habe zwei Checkboxes, bei denen ich
    überprüfe, ob "ODER" oder "UND" angeklickt ist.

    Mittels PHP mache ich das wie folgt:
    PHP-Code:

    if (isset($buttonOR1)) { $ORbutton "OR"; } 
    else { 
    $ORbutton "AND"; }; 
    Das funktioniert auch super, klicke ich "OR" an, so wird auch or
    ausgegeben und entsprechend anders herum (and).

    Eine Zeile vor einer Menüauswahl (switch...case) lasse ich das nochmal zur
    Probe ausgeben. Auch da wird die entsprechende Auswahl auch noch
    korrekt ausgegeben. Jetzt möchte ich ein paar weitere Kriterien auswählen
    und mache das (wie angegeben) mit 'ner switch...case-Auswahl.

    PHP-Code:
    echo "OR button equals: <b>".$ORbutton."</b><br>";
    switch (
    $choice) {
      case 
    1$sqlsearch "SELECT * FROM T_Testtabelle WHERE Name LIKE \"".$sfirma."\""
    break;
    //. . .
      
    case 4$sqlsearch "SELECT * FROM T_Testtabelle WHERE ((Name LIKE \"".$sfirma."\") "
    .$ORbutton." (Vorname LIKE \"".$sansprechpartner."\"))";
    break;

      case 
    5$sqlsearch "SELECT * FROM T_Testtabelle WHERE ((Name LIKE \"".$sfirma."\") "
    .$ORbutton." (Ort LIKE \"".$sort."\"))";
    break;
    //. . . .
      
    default: echo "No choice!";break;

    Wenn ich den entsprechenden case überprüfe, funktioniert das nicht mehr
    mit dem Button, es wird mir immer or angezeigt. Wieso denn das,
    kann mir da jemand behilflich sein?

    Mit $choice überprüfe ich, welcher Fall eintritt, nach dem dann gesucht
    werden soll. Ist für das Problem unerheblich.
    Das Problem manifestiert sich nur dadurch, dass in der einen
    Zeile "$ORbutton" richtig ausgegeben wird,
    eine Zeile weiter nicht mehr.
    Zuletzt geändert von chefkochbln; 26.09.2005, 11:25.
    Geht nich, gibts nich!
    God is real...unless declared as integer!

  • #2
    bitte erst http://www.php-resource.de/forum/sho...threadid=50454 lesen und post editieren.

    informiere dich über register globals

    woher kommt $choice?

    Kommentar


    • #3
      ^^^^
      Geht nich, gibts nich!
      God is real...unless declared as integer!

      Kommentar


      • #4
        Mit $choice überprüfe ich, welcher Fall eintritt, nach dem dann gesucht
        werden soll. Ist für das Problem unerheblich.
        Ist imho doch ziemlich erheblich. Denn du prüfst auf Integer Werte. Wenn aber choice aus einem Form kommt, kannst du sicher sein dass dieser Wert als String übertragen wird.

        Gruss

        tobi
        Zuletzt geändert von jahlives; 26.09.2005, 11:32.
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          verstehe ich nicht. wie sieht $sqlsearch nach dem switch aus?

          das problem muss dann woanders liegen.

          Kommentar


          • #6
            Probier mal noch ein
            PHP-Code:
            var_dump($choice);
            exit; 
            Entsprechen die Schlüssel/Werte deinen Erwartungen ?

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              1. Was soll an der Menüauswahl falsch sein?

              2. Es geht ja auch nicht um die Variable $sqlsearch,
              sondern um die Variable $ORbutton!

              Ich habe trotz "register_globals=on" versucht, die Variable mit $_GET['buttonOR1']
              zu übergeben....es funktioniert trotzdem nicht.

              var_dump gibt int($choice), also int(1) zurück. $choice wird also richtig ausgewertet.
              Das einzige, was nicht funktioniert, ist das Übergeben des Radiobuttons und die richtige Auswertung.
              Geht nich, gibts nich!
              God is real...unless declared as integer!

              Kommentar


              • #8
                der fehler kann auch in deinem formular stecken.

                Kommentar


                • #9
                  Bist du sicher, dass du jeweils in den korrekten case reinkommst ? Allenfalls bei jedem case mal ein echo 'irgendein Wert' machen und sicherstellen, dass du wie erwartet in den korrekten case reinkommst.

                  Ansonsten wie von penizillin geschrieben, kann der Fehler auch im form stecken. Also vllt mal dessen Quellcode posten.

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Ich habe trotz "register_globals=on" versucht, die Variable mit $_GET['buttonOR1']
                    zu übergeben....es funktioniert trotzdem nicht.
                    Also wenn du versuchst ne $_POST Var (checkbox) mittels $_GET abzufragen, dann solltest du dich nicht über ein Nichfunktionieren des Scripts wundern

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von jahlives
                      Also wenn du versuchst ne $_POST Var (checkbox) mittels $_GET abzufragen, dann solltest du dich nicht über ein Nichfunktionieren des Scripts wundern
                      Sorry, das war nur O-ton von penizillin vorhin *grins*

                      Im Moment habe ich das so abgeändert, dass es eigentlich funktionieren
                      sollte, was es aber auch nicht tut...:

                      Code:
                        <input type=\"radio\" name=\"buttonOR1\" 
                      value=\"radiobutton1\">or <br>
                      <input type=\"radio\" name=\"buttonOR1\" 
                      value=\"radiobutton1\">and
                      (HTML in PHP eingefügt)

                      Die Auswertung erfolgt dann wie folgt:
                      PHP-Code:
                      if ($radiobutton1 == '') { $ORbutton "OR"; } 
                      else { 
                      $ORbutton "AND"; };
                      // Lasse ich $ORbutton ausgeben, so kommt - egal, ob ich OR oder AND
                      // angeklickt habe, OR heraus....?!?!? 
                      Sieht denn da jemand einen Fehler?!
                      Geht nich, gibts nich!
                      God is real...unless declared as integer!

                      Kommentar


                      • #12
                        ja, du kannst nicht wirklich mit formularen umgehen.

                        aufmerksam durchlesen, verstehen, wirken lassen:
                        http://tut.php-q.net/formulare.html#u12

                        Kommentar


                        • #13
                          Du weisst aber, dass Buttons nur mit dem Namen abgefragt werden können und nicht mit dem Value ??
                          Du scheinst den Button buttonOR1 genannt zu haben, versuchst ihn aber über seinen Wert abzufragen. Das kann nicht gehen...
                          Wenn du zu Beginn deines Scripts wie von penizilin geschrieben ein
                          PHP-Code:
                          error_reporting(E_ALL); 
                          eingebaut hättest, dann wäre dir aufgefallen, dasss du notices kriegst wegen dem Zugriff auf nicht-existierende Indecies resp Vars

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Hm, dann meint ihr beiden also, dass es so richtig(er) wäre?
                            Code:
                            <input type=\"radio\" name=\"buttonOR1\" value=\"radiobutton1\">or <br>
                               <input type=\"radio\" name=\"buttonOR1\" value=\"radiobutton2\">and
                            und in der Auswertung:
                            PHP-Code:
                            if ($buttonOR1 == '') { $ORbutton "OR"; } else { $ORbutton "AND"; }; 
                            So funktioniert es auch nicht!
                            Geht nich, gibts nich!
                            God is real...unless declared as integer!

                            Kommentar


                            • #15
                              Und was ist der Fehler ?? Kommst du immer in den else Zweig rein ???

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X