Dropdown Liste

orionzrh

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

Dropdownliste:
PHP:
$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:

PHP:
//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, 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>';

Kann mir jemand helfen?

Herzlichen Dank
 
Zuletzt bearbeitet:
Nach Abschicken deines Formulars an die im action-Attribut des <form> angegebene Seite kannst du dort über $_POST['hostname'] darauf zugreifen. Z.B. setzt du es auf den Pfad deiner php-Datei und fragst am Anfang $_POST['hostname'] ab.

Wenn du Javascript zum Formular-Abschicken nutzen möchtest, solltest du noch deinen onchange-Eventhandler richtig im SELECT-Element und nicht im Option-Element setzen. Z.B. so ähnlich:
Code:
<select name="hostname" onchange="this.form.submit();">
 
Herzlichen dank
ich glaube aber ich habe noch ein andere problem. Wenn ich meinen HTML code anschaue habe ich sämtliche einträge der Dropdownliste auf einer Zeile. Diese sollten aber unetreinander stehen. Wie krige ich das hin. Ich glaube nämlich das ich da bereits ein problem habe.

PHP:
while ($row = mysql_fetch_assoc($all_hosts)){
		$print .= '<option value="'.$row['Agent_Name'].'">'.$row['Agent_Name'].'</option>'"\n";
	}

HTML:
<select name="hostname" onchange="getAlerts(this.value)"><option value="b00181l10">b00181l10</option>\n<option value="b00181l11">b00181l11</option>
 
Willst du etwa deinem HTML-Quelltext "ein Design" verleihen? :D

So würde es gehen:
PHP:
while ($row = mysql_fetch_assoc($all_hosts))
{
  $print .= '<option value="'.$row['Agent_Name'].'">'.$row['Agent_Name'].'</option>'.'\n';
}
 
Naja vieleicht hilft's mir meinen Fehler zu finden :)

leider bekomme ich, wenn ich das mache einen Error:

PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

Abgesehen von der kleinen Unschönheit im HTML Code habe ich folgendes gemacht:

test.php
PHP:
<?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


$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("alertlist").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("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","alertPerHost.php?q="+str,true);
xmlhttp.send();
}
</script>


</head>
<body>
<div>
<!-- start top -->
        <div id="banner" >
          <a href="index.html" >
          <img src="http://www.tutorials.de/images/bock.png" alt="Logo"/></a>
        </div>
<!-- end top -->

<!-- start mainnavi -->
			<div id="mainnavi" >
			<ul id="navi">
			<li><a href="index.html">HOME</a></li>
			<li><a href="offerte.html">HOSTS</a></li>
         <li><a href="aktionen.html">HIGH ALERTS</a></li>
         <li><a href="links.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>
					<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

	echo "'<!-- Alertlist -->'";
	$print .= '<!-- Alertlist -->';
	$print .= '<h1>Alerts</h1>';
	
	$print .= '<div id="alertlist"><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>test</p></div>
<!-- end footer -->
	</div>';
	}
	
	if($config['mode'] == 'admin'){
	}
}



print $print;



mysql_close($mysqlcon);



?>

alertPerHost.php

PHP:
<?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


$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 * FROM HawkAlertClearInfo WHERE Agent_Name = '".$q."' ORDER BY Event_Time DESC LIMIT 30") 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);

?>

Aber irgendwie wird die Tabelle nicht geschrieben geschweige denn Daten aus der Tabelle ausgelesen. Wo habe ich den Knopf drin?
 
Zuletzt bearbeitet:
Hier hast du einen Punkt vergessen
Dein erster Code hat gesagt.:
while ($row = mysql_fetch_assoc($all_hosts)){
$print .= '<option value="'.$row['Agent_Name'].'">'.$row['Agent_Name'].'</option>'.'\n';
}

Aber irgendwie wird die Tabelle nicht geschrieben geschweige denn Daten aus der Tabelle ausgelesen. Wo habe ich den Knopf drin?

Es gibt da so ein gutes Tutorial von yaslaw :D
Click!
 
:) jupiiii die Tabelle wird geschrieben. Herzlichen dank schon mal.
Jetzt scheine ich nur noch das Problem zu haben das meine Auswahl nicht funtzt. Sprich wenn ich in meinem Dropdown was wähle wird das alertPerHost.php nicht ausgeführt. Da muss irgendwo noch der Wurm drin sein.
 
Hab es geschafft. Was so ein kleiner Vertipper doch alles ausmacht.

Hier noch die die Lösung:

hostlist.php

PHP:
<?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:
<?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
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück