Funktions Sting-Rückgabe mit ECHO Ausgabe, IE7 ja IE6 nein?

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

  • Funktions Sting-Rückgabe mit ECHO Ausgabe, IE7 ja IE6 nein?

    Hallo Leute,

    ich folgendes Problem:

    Funktion check_policy_anz:
    PHP-Code:
    function check_policy_anz($p_id) {
        if(
    $p_id_temp) {
            
    $meldung "<div title=\"test!\">in bearbei.</div>";
        }else{
            
    $meldung "<a class=\"textlink\" href=\"wysiwyg.php\" >abändern</a>";
        }
    return 
    $meldung;

    aufrufen tu ich das ganze so:
    PHP-Code:
    $checked_policy_return check_policy_anz($key); 
    das wiederum wird wieder in der Funktion "return_formated_policy()" aufgerufen und danach in der index.php wie folgt ausgeben:
    [CODE]
    echo return_formated_policy($user,$_GET[pu_status],$_GET[p_status]);
    [/PHP]

    Hier wird der HTML CODE Zusammengebaut, und hier soll er das ganz dann ausgeben:
    PHP-Code:
     $html.= " <div class=\"sendbutton\">
                       <div class=\"acceptbutton_content\">
                       
    $checked_policy_return
                       </div>
                     </div>"


    JETZT DAS PROBLEM:
    Der Textlink "abändern" wird korrekt angezeigt, jedoch der div "in bearbei." nicht, der taucht einfach nicht auf!

    Und das Problem kriege ich unter IE6,Firefox der IE7 machts richtig??

    Was mach ich das falsch?

    Schöne Grüße
    Michael

  • #2
    Hm... Also ich verstehe ja nicht ganz, warum die verschiedenen Browser verschiedenen HTML-Code vom Server bekommen!? Ich meine, PHP ist Sache des Servers, da ist doch der Browser herzlich egal!?
    Gut, die Darstellung kann (und wird) sich unterschiedlich verhalten ... aber der HTML-Code sollte schon identisch sein, egal welcher Browser.

    Oder hab' ich dich falsch verstanden?

    Grüße!
    berndstein

    Kommentar


    • #3
      Irgendwie glaube ich nicht, dass es in einem Browser funzt. PHP ist serverseitig und sollte damit nix mit dem verwendeten Browser zu tun haben.
      Wenn ich mir diese Fkt anschaue, dann
      PHP-Code:
      function check_policy_anz($p_id) {
          if(
      $p_id_temp) {
              
      $meldung "<div title=\"test!\">in bearbei.</div>";
          }else{
              
      $meldung "<a class=\"textlink\" href=\"wysiwyg.php\" >abändern</a>";
          }
      return 
      $meldung;

      frage ich mich wie du innerhalb der Fkt auf eine Var prüfst, die so nicht in der Def der Funktion steht. imho ist $p_id_temp nie gesetzt (du übergibst ja $p_id) und daher kommt der Code immer in den else-Zweig rein.
      Falls dies das Problem war, dann hast du aber zumindest dein error_reporting() nicht so hochgedreht wie es in den Regeln steht. Der Parser hätte dich wohl mit einer Notice "beglückt"
      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


      • #4
        Original geschrieben von jahlives
        Irgendwie glaube ich nicht, dass es in einem Browser funzt. PHP ist serverseitig und sollte damit nix mit dem verwendeten Browser zu tun haben.
        Wenn ich mir diese Fkt anschaue, dann
        PHP-Code:
        function check_policy_anz($p_id) {
            if(
        $p_id_temp) {
                
        $meldung "<div title=\"test!\">in bearbei.</div>";
            }else{
                
        $meldung "<a class=\"textlink\" href=\"wysiwyg.php\" >abändern</a>";
            }
        return 
        $meldung;

        frage ich mich wie du innerhalb der Fkt auf eine Var prüfst, die so nicht in der Def der Funktion steht. imho ist $p_id_temp nie gesetzt (du übergibst ja $p_id) und daher kommt der Code immer in den else-Zweig rein.
        Falls dies das Problem war, dann hast du aber zumindest dein error_reporting() nicht so hochgedreht wie es in den Regeln steht. Der Parser hätte dich wohl mit einer Notice "beglückt"
        Das ist ja nicht der ganze code! Das ist nicht das Problem! Die temp wird mit einem result aus der DB gefüllt! ;-)

        Kommentar


        • #5
          Original geschrieben von Morpheus2100
          Das ist ja nicht der ganze code! Das ist nicht das Problem! Die temp wird mit einem result aus der DB gefüllt! ;-)
          in der Funktion oder außerhalb ???

          sonst
          PHP-Code:
          global $variablennamen 
          "Nicht jeder Mensch kann und soll Programmieren[...]".

          Kommentar


          • #6
            Das Problem scheint aber in diese Fkt zu liegen. Sie geht wie es scheint immer in den else-Zweig. Ich bin davon ausgegangen, dass dies der ganze Code der Fkt sei. Ohne diesen ganzen Code wird es schwierig...
            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
              Original geschrieben von xkl1986
              in der Funktion oder außerhalb ???

              sonst
              PHP-Code:
              global $variablennamen 
              Natürlich innerhalb! :-)

              Kommentar


              • #8
                1. Kommt der ganze Code der Fkt mal?
                2. error_reporting() meldet nix?
                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


                • #9
                  Hier ist der CODE der check_policy_anz Funktion:
                  Code:
                  function check_policy_anz($p_id) {
                  
                      $oracle_conn = ocilogon("TEST", "TEST", "//TEST.TEST-dbdmz.de/velm");
                      If (!$oracle_conn){
                          die( "Konnte Verbindung zur Datenbank nicht herstellen: ".oci_error() );
                      }
                  
                      $query = " SELECT P_ID,P_NAME FROM POLICY";
                      $query.= " WHERE P_ID = " . $p_id . " AND P_STATUS != 0 AND P_VERSION > 0";
                      $res = sql($query, $oracle_conn);
                  
                      while (OCIFetch($res) ) 
                      {
                          $p_id_temp = ociresult($res,"P_ID");   
                          $p_name = ociresult($res,"P_NAME");
                      }
                  
                      if($p_id_temp) {
                          $meldung = "<div title=\"Es ist bereits eine Policy vorhanden die noch nicht bestätigt wurde!\">in bearbei.</div>";
                      }else{
                          $meldung = "<a class=\"textlink\" href=\"wysiwyg.php?TEST=$_GET[TEST]&p_id=$p_id\" 
                  title=\"policy ändern\" rel=\"gb_page_center[800, 600]\" 
                  style=\"cursor:pointer;\">abändern</a>";
                      }
                  
                      return $meldung;
                      ocilogoff($oracle_conn);
                  }

                  P.S Die einzigen Meldungen die ich kriege sind: Notice: Undefined variable: p_id_temp
                  Zuletzt geändert von Morpheus2100; 17.01.2008, 17:54.

                  Kommentar


                  • #10
                    Du liest zuerst alle Zeilen aus --> $p_id_temp wird also nur den Wert haben der in der letzten Zeile des Resultates steht. imho müsstest du die Erstellung von $meldung innerhalb der Schleife machen und nicht ausserhalb.

                    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
                      Du liest zuerst alle Zeilen aus --> $p_id_temp wird also nur den Wert haben der in der letzten Zeile des Resultates steht. imho müsstest du die Erstellung von $meldung innerhalb der Schleife machen und nicht ausserhalb.

                      Gruss

                      tobi
                      Habs jetzt nochmal etwas geändert, den SPaß!

                      Code:
                      function check_policy_anz($p_id) {
                      
                          $oracle_conn = ocilogon("sdf", "sdf", "//sdf.sdf-dbdmz.de/velm");
                          If (!$oracle_conn){
                              die( "Konnte Verbindung zur Datenbank nicht herstellen: ".oci_error() );
                          }
                      
                          $query = " SELECT P_ID,P_NAME FROM POLICY";
                          $query.= " WHERE P_ID = " . $p_id . " AND P_STATUS != 0 AND P_VERSION > 0";
                          $res = sql($query, $oracle_conn);
                      
                          while (OCIFetch($res) ) 
                          {
                              $p_id_temp = ociresult($res,"P_ID");   
                              $p_name = ociresult($res,"P_NAME");
                          }
                      
                          if($p_id_temp) {
                              $policy_exists = TRUE;
                          }else{
                              $policy_exists = FALSE;
                          }
                      
                          return $policy_exists;
                          ocilogoff($oracle_conn);
                      }
                      Komischerweise funktionierts jetzt? Vielleicht hatte ich irgendwo nen Fehler!
                      Trotzdem vielen DANK für die HILFE!

                      Schöne Grüße
                      Morph

                      Kommentar


                      • #12
                        nur als anmerkung:
                        nach einem
                        PHP-Code:
                        return 
                        wird kein Code mehr ausgeführt!

                        Kommentar


                        • #13
                          Original geschrieben von krel
                          nur als anmerkung:
                          nach einem
                          PHP-Code:
                          return 
                          wird kein Code mehr ausgeführt!
                          Oh danke das wusste ich nicht! SORRY!

                          Kommentar

                          Lädt...
                          X