Ankündigung

Einklappen
Keine Ankündigung bisher.

Dropdown Liste

Einklappen

Neue Werbung 2019

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

  • Dropdown Liste

    Hallo zusammen,
    ich bin in den Anfängen meiner PHP Kariere und bräuchte eure Hilfe. Ich habe eine Dropdown Liste von Servern erstellt und würde nun gerne nach dem Auswählen eines Servers aus der Liste die dementprechende Abfrage aus einer anderen Tabelle mit Fehlermeldungen machen.
    Diese sollte dann unterhalb der Dropdownliste angezeigt (generiert werden).

    Dropdownliste:
    PHP-Code:
    $print .= '<!-- HTML form opening -->
    <form name="alerts distinct hosts" action="action" method="post">
                        <select name="hostname">'
    ;

        
    $A 0;
        while (
    $A mysql_numrows($all_hosts)){
            for (
    $i 0$i < (mysql_numrows($all_hosts)); $i++){
                
    $print .= '<option name="Hostlist" value='.$hos[$A].' onchange")">'.$hos[$A].'</option>"/n';
                
    $A++;
            }
        }
        
        
    $print .= '<!-- HTML form closing -->
                    </select>'
    ;
        
    $print .= '</form>'
    Tabelle für FehlerListe die ich in einer separaten PHP datei habe:
    PHP-Code:
    $result mysql_query("SELECT DISTINCT HA.Agent_Name,HA.Event_Time,HA.Alert_State,HA.Event_Type,HA.Alert_Text,HA.AlertID,HB.Clear_Reason,HB.Event_Time, HB.Event_Type FROM 
                                    (SELECT * from HawkAlertClearInfo
                                        WHERE Event_Type = 'onAlert'
                                        AND Agent_Name = 'FR09219-rmds01'
                                        ORDER BY Event_Time DESC
                                        LIMIT 30
                                    )
                                HA LEFT JOIN HawkAlertClearInfo HB 
                                ON (HA.Agent_Name = HB.Agent_Name
                                AND HA.AlertID = HB.AlertID
                                AND HB.Event_Type not like 'onAlert')
                                WHERE HA.Event_Type not like 'onClear'"
    )
                                or die (
    "Query does not work as it should");


    ##############################
    //Tabelle aufbauen

    if(!isset($print)){
        
    $print .= ' ';
        }

        
    $print .= '<h1>Alerts</h1>';
        
    $print .= '<table width="100%">';
        
    $print .= '<tbody>';

        
    $print .= '<tr>';

        
    $print .= '<th align="left" width="100px">Host</th>';

        
    $print .= '<th align="left" width="120px">Time</th>';
        
    $print .= '<th align="left">ID</th>';

        
    $print .= '<th align="left" width="100px">state</th>';

        
    $print .= '<th align="left">Alert</th>';



        
    $print .= '</tr>';

        

        while(
    $row mysql_fetch_assoc($result)){

            
    $print .= '<tr>';

            
    $print .= '<td align="left">'.$row['Agent_Name'].'</td>';

            
    $print .= '<td align="left">'.$row['Event_Time'].'</td>';
            
    $print .= '<td align="left">'.$row['AlertID'].'</td>';

            
    $print .= '<td align="left">'.$row['Alert_State'].'</td>';

            
    $print .= '<td align="left">'.$row['Alert_Text'].'</td>';

            }

            
    $print .= '</tr>';

        

        
    $print .= '</tbody></table>';



    print 
    $print;



    mysql_close($mysqlcon); 
    Wie kriege ich das hin? Müsste ich das irgendwie mit AJAX machen?

    Herzlichen Dank


  • #2
    Versuche bitte erstmal, deinen aktuellen Code etwas aufzuräumen.

    PHP-Code:
                $print .= '<option name="Hostlist" value='.$hos[$A].' onchange")">'.$hos[$A].'</option>"/n'
    Das kann ja jetzt schon nicht funktionieren bzw. ergibt alles andere als valides HTML. Was versuchst du da?

    Die while-Schleife um die for-Schleife ist auch unsinnig, wie kommst du auf so etwas? Entscheide dich für eine von beiden Varianten.

    Also bevor du dich mit AJAX befasst würde ich dir raten, HTML und PHP erstmal besser zu verstehen. Es spricht sicher nichts dagegen, das Formular ganz normal abzuschicken und anschließend die Tabelle auszugeben oder?

    Dazu hier entlang: Lerne Grundlagen | Quellensammlung - php.de
    @fschmengler - @fschmengler - @schmengler
    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

    Kommentar


    • #3
      Herzlichen dank

      Habe leider mit schrecken festgestellt das ich eine falsche version des ganzen genommen habe. Ich hab mitlerweilen die richtige version welche auch läuft.

      PHP-Code:
      ##############################
      //form aufbauen


          
      $print .= '<!-- HTML form opening -->
                          <form name="alerts distinct hosts" action="action" method="post">
                          <select name="hostname">'
      ;

      //for each row we get from mysql, echo a form input

          
      while ($row mysql_fetch_assoc($all_hosts)){
              
      $print .= '<option value="'.$row['Agent_Name'].'">'.$row['Agent_Name'].'</option>"/n';
          }
          
          
      $print .= '<!-- HTML form closing -->
                      </select>'
      ;
      //                <input type="submit" value="go!">
          
      $print .= '</form>'
      So jetzt ist es besser. Hoffe ich doch.

      Kommentar


      • #4
        name="alerts distinct hosts"
        Solln dat?
        //for each row we get from mysql, echo a form input
        <!-- HTML form closing -->
        Falsch plazierte Kommentare kann man sich auch sparen.

        '</option>"/n'
        Das sollte Dir auch optisch auffallen. Totaler Murx.

        Leider scheinst Du null Plan zu haben, was der Code bewirkt.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Bitte in Zukunft auf Crosspostings verzichten!

          Dropdown Liste @ tutorials.de: Tutorials, Forum & Hilfe

          Anmerkung zu Multipostings
          http://hallophp.de

          Kommentar


          • #6
            Es ist glaube ich ziemlich egal wo und wann ich Kommentare reinschreibe. Wenns mir für's debugging hilft spielt es ja wohl kar keine Rolle wo Kommentar drin steht.
            Das mit dem "/n ist mir beim rumkopieren reingerutscht. Kommt davon wenn "Mann" 3 Dinge gleichzeitig macht.

            das mit dem Crossposting tut mir leid. Ich hatte einfach keine geduld.

            Kommentar


            • #7
              Zitat von orionzrh Beitrag anzeigen
              Es ist glaube ich ziemlich egal wo und wann ich Kommentare reinschreibe. Wenns mir für's debugging hilft spielt es ja wohl kar keine Rolle wo Kommentar drin steht.
              Nein, das ist nicht egal.

              Zum einen sollen Kommentare dir selber helfen, das Script auch in einem halben Jahr noch schnell wieder verstehen zu können.

              Und zum anderen suchst du hier Hilfe, weil du selber mit deinem Script nicht klar kommst. Gerade dann ist es aber wichtig, dass die Kommentare treffend sind - weil hier andere Leute versuchen, dein Script und deine Gedankengänge nachzuvollziehen, um dir weiterhelfen zu können. Falsche Kommentare führen dabei entweder dazu, dass wir auch nicht verstehen, was du machst; oder das wir annehmen, dass du selber nicht weißt, was du tust, und dir dann noch mal Dinge erklären, die du eigentlich schon weißt.

              Kommentar


              • #8
                Das mit dem "/n ist mir beim rumkopieren reingerutscht.
                Wers glaubt... Sowas lese ich hier immer wieder. Faktisch ändern sich beim Kopieren keine Zeichen. Wenn doch heißt das, dass Du die Codebeispiele veränderst und damit sowieso keine Garantie hast, passende Hilfe bekommen zu können. Schließlich betreffen unsere Aussagen ja den Code hier, nicht den, den Du ausprobierst.

                Ich hatte einfach keine geduld.
                Wenn die Ratschläge drüben nicht so schlecht wären, wäre hier schon zu. Ich frage mich allerings schon, warum Du trotzdem in zwei Foren weiterdiskutierst.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Hab es geschafft. Was so ein kleiner Vertipper doch alles ausmacht.

                  Hier noch die die Lösung:

                  hostlist.php

                  PHP-Code:
                  <?php

                  ##############################

                  #KONFIGURATION

                  ##############################



                  //Modus definieren admin / user (admin = daten editieren / user = daten auslesen)

                  $config['mode'] = 'user';





                  //MySQL Login

                  $config['host'] = 'xxx';

                  $config['user'] = 'xxx';

                  $config['pw'] = 'xxx';

                  $config['db'] = 'hawk';



                  ##############################
                  //verbindung zum mysql Server und errorhandling

                  $mysqlcon mysql_connect($config['host'], $config['user'],  $config['pw']);



                  if (!
                  $mysqlcon) {

                      die(
                  'connetion to MySQL-Server dident worked: ' mysql_error());

                  }


                  //DB auswählen


                  mysql_select_db($config['db']);





                  if(
                  $config['mode'] == 'user' OR $config['mode'] == 'admin'){

                      
                  $result mysql_query("SELECT Agent_Name,Event_Time,Alert_State,Alert_Text,AlertID FROM HawkAlertClearInfo WHERE Alert_Text NOT LIKE 'NA' AND Alert_State LIKE 'ALERT_%' ORDER BY Event_Time DESC LIMIT 30") or die("Query does not work as it should");    
                      
                  $all_hosts mysql_query("SELECT SQL_CACHE DISTINCT Agent_Name FROM HawkAgentInfo ORDER BY Agent_Name;") or die("Query does not work as it should");
                      


                      if(
                  $config['mode'] == 'user'){


                      if(!isset(
                  $print)){
                      
                  $print .= ' ';
                      }

                  ##############################

                  //HTML aufbauen


                  $print .= '<html xmlns="http://www.w3.org/1999/xhtml">

                  <head>
                  <link type="text/css" href="main.css" rel="stylesheet" media="screen" />
                  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

                  <script type="text/javascript">
                  function getAlerts(str)
                  {
                  if (str=="")
                    {document.getElementById("alert").innerHTML="";
                    return;
                    }
                  if (window.XMLHttpRequest)
                    {// code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp=new XMLHttpRequest();
                    }
                  else
                    {// code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                    }
                  xmlhttp.onreadystatechange=function()
                    {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200)
                      {document.getElementById("alert").innerHTML=xmlhttp.responseText;
                      }
                    }
                  xmlhttp.open("POST","alertPerHost.php?q="+str,true);
                  xmlhttp.send();
                  }
                  </script>


                  </head>
                  <body>
                  <div>
                  <!-- start top -->
                          <div id="banner" >
                          </div>
                  <!-- end top -->

                  <!-- start mainnavi -->
                              <div id="mainnavi" >
                              <ul id="navi">
                              <li><a href="index.html">HOME</a></li>
                              <li><a href="xxx.html">HOSTS</a></li>
                           <li><a href="xxx.html">HIGH ALERTS</a></li>
                           <li><a href="xxx.html">LOW ALERTS</a></li>
                           </ul>
                              <div class="cfloatleft"></div>
                              </div>
                  <!-- end mainnavi -->'
                  ;

                  ##############################

                  //content aufbauen

                      
                  $print .= '<!-- start content -->
                                      <div id="content">'
                  ;

                  ##############################

                  //form aufbauen


                      
                  $print .= '<!-- HTML form opening -->
                                      <form method="POST">
                                      <select name="hostname" onchange="getAlerts(this.value)">'
                  ;

                      while (
                  $row mysql_fetch_assoc($all_hosts)){
                          
                  $print .= '<option value="'.$row['Agent_Name'].'">'.$row['Agent_Name'].'</option>'.'\n';
                      }
                      
                      
                  $print .= '<!-- HTML form closing -->
                                  </select>'
                  ;
                  //                <input type="submit" value="go!">
                      
                  $print .= '</form>';
                                  
                  ##############################

                  //tabelle mit aletrs aufbauen

                      
                  $print .= '<!-- Alertlist -->';
                      
                  $print .= '<div id="alert"><b>Alerts for seleted host will be listed here.</b></div>';

                      
                  $print .= '</div>';
                      
                  $print .= '    <!-- end content -->';
                      
                  ##############################

                  //footer aufbauen
                      
                      
                      
                  $print .= '
                  <!-- start footer -->
                          <div id="footer">
                          <p>XXXX</p></div>
                  <!-- end footer -->
                      </div>'
                  ;
                      }
                      
                      if(
                  $config['mode'] == 'admin'){
                      }
                  }



                  print 
                  $print;



                  mysql_close($mysqlcon);



                  ?>
                  alertPerHost.php

                  PHP-Code:
                  <?php

                  $q
                  =$_GET['q'];


                  ##############################

                  #KONFIGURATION

                  ##############################



                  //Modus definieren admin / user (admin = daten editieren / user = daten auslesen)

                  $config['mode'] = 'user';





                  //MySQL Login

                  $config['host'] = 'xxx';

                  $config['user'] = 'xxx';

                  $config['pw'] = 'xxx';

                  $config['db'] = 'hawk';



                  ##############################

                  //verbindung zum mysql Server

                  error_reporting(E_ALL);

                  $mysqlcon mysql_connect($config['host'], $config['user'],  $config['pw']);



                  if (!
                  $mysqlcon) {

                      die(
                  'connetion to MySQL-Server dident worked: ' mysql_error());

                  }


                  //DB auswählen


                  mysql_select_db($config['db']);



                  $result mysql_query("SELECT DISTINCT HA.Agent_Name, HA.Event_Time, HA.Alert_State, HA.Event_Type, HA.Alert_Text, HA.AlertID, HB.Clear_Reason, HB.Event_Time AS clrTime, HB.Event_Type AS clrType FROM (SELECT * from HawkAlertClearInfo WHERE Event_Type = 'onAlert' AND Agent_Name = '".$q."' ORDER BY Event_Time DESC LIMIT 30) HA LEFT JOIN HawkAlertClearInfo HB ON (HA.Agent_Name = HB.Agent_Name AND HA.AlertID = HB.AlertID AND HB.Event_Type not like 'onAlert') WHERE HA.Event_Type not like 'onClear'") or die("Query does not work as it should");

                  ##############################

                  //Tabelle aufbauen

                  if(!isset($print)){
                      
                  $print .= ' ';
                      }

                      
                  $print .= '<h1>Alerts</h1><a>from '.$q.'</a>';
                      
                  $print .= '<table width="100%">';
                      
                  $print .= '<tbody>';

                      
                  $print .= '<tr>';

                      
                  $print .= '<th align="left" width="125px">Time</th>';
                      
                  $print .= '<th align="left" width="90px">State</th>';
                      
                  $print .= '<th align="left" width="50px">Type</th>';
                      
                  $print .= '<th align="left" width="400px">Alert</th>';

                      
                  $print .= '<th align="left">ID</th>';
                      
                  $print .= '<th align="left">Clear Reason</th>';

                      
                  $print .= '<th align="left" width="125px">Clear Time</th>';

                      
                  $print .= '<th align="left" width="50px">Type</th>';



                      
                  $print .= '</tr>';

                      

                      while(
                  $row mysql_fetch_assoc($result)){

                          
                  $print .= '<tr>';

                          
                  $print .= '<td align="left">'.$row['Event_Time'].'</td>';

                          
                  $print .= '<td align="left">'.$row['Alert_State'].'</td>';
                          
                  $print .= '<td align="left">'.$row['Event_Type'].'</td>';
                          
                  $print .= '<td align="left">'.$row['Alert_Text'].'</td>';
                          
                  $print .= '<td align="left">'.$row['AlertID'].'</td>';

                          
                  $print .= '<td align="left">'.$row['Clear_Reason'].'</td>';
                          
                  $print .= '<td align="left">'.$row['clrTime'].'</td>';

                          
                  $print .= '<td align="left">'.$row['clrType'].'</td>';

                          }

                          
                  $print .= '</tr>';

                      

                      
                  $print .= '</tbody></table>';



                  print 
                  $print;



                  mysql_close($mysqlcon);

                  ?>
                  Hertlichen Dank fürs helfen und die Tipps und fürs nächste mal habe ich auch was bei den Kommentaren im Script gelernt

                  Kommentar

                  Lädt...
                  X