Leeg dropdownmenu in formulier na het ophalen van sql gegevens

Status
Niet open voor verdere reacties.

Earthfighter

Gebruiker
Lid geworden
5 sep 2012
Berichten
28
Best mensen,
Ik heb een vraag over een dropdownmenu in mijn html formulier. Ik gebruik php incl. een odbc verbinding naar een mssql server.

Tot nu lukt bijna alles. Als ik mijn gegevens toon in een tabel worden alle gegevens weergegeven. Als ik dezelfde gegevens in een dropdownmenu wil tonen waar iemand een keuze uit kan maken dan gaat het fout. Ik zie een hele lange lijst zonder letters. Het lijkt of de gegevens in het wit geprint worden. Wat zie ik over het hoofd? Aan de css style ligt het volgensmij niet. Dat heb ik al geprobeerd.

PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
 <html>
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<link rel="stylesheet" type="text/css" href="view.css" media="all">
   <title>Dropdownlist</title>
  </head>
 <body>
 
 <?php
  /*inloggegevens*/
   $dsn = "MaxView";
   $user = "FrancoisG";
   $pass = "";

  /*connectie maken met de mssql server*/
   $conn  = odbc_connect("$dsn","$user","$pass");

	 if  ($conn  <=  0)  {
	  echo  "Error  in  connection";
	 exit;
	  } else  {
	   echo  "<P>Succesfull<br/>\n";
		        }
		?>
	
 <form method="post" action="action.php">	
  <select class="element select large" id="element_19" name="projectcode_1">
   
	
	<?php		
		$query = 
	'SELECT ProjectNumber, ProjectName, ProposalStatus
	FROM TR_PM_ProjectBrief LEFT JOIN TR_PM_ProjectProposal ON TR_PM_ProjectBrief.TR_PM_Project_ID = TR_PM_ProjectProposal.LK_PM_Project_ID
	WHERE proposalstatus ="proposalStatus"
	ORDER BY proposalstatus ASC
	';
 
 $res = odbc_exec($conn, $query);
if ($res){
  if (odbc_num_rows ($res) > 0) {
  
 while ($data = odbc_fetch_row($res)) {
  ?>
  <option value="<?php echo $data['ProjectNumber']; ?>"><?php echo $data['ProjectNumber']; ?></option>
 <?php }
 

  }  else { echo 'No records found';}
 }  else {
        echo odbc_error().' in query: '.$res;
    }
	
    odbc_free_result($res);
odbc_close($conn);
?>

   </form>
  </select>
 </body>
</html>
 
Laatst bewerkt:
Heb je toevallig PHP-foutmeldingen uit staan?

Er hoort namelijk een syntax foutmelding te verschijnen omdat je geen enkele echo op regel 38 juist afsluit.
Met als gevolg dat de HTML-elementen wel worden gemaakt maar de data niet.

Maak van regel 38 dit eens:
PHP:
<option value="<?php echo $data['ProjectNumber']; ?>"><?php echo $data['ProjectNumber']; ?></option>
 
Zover ik weet staat mijn al mijn foutmeldingen aan. Ik had inderdaad de echo niet afgesloten. Maar alsnog zie ik geen verbeteringen in mijn formulier. Blijft wit
 
Hoi Earthfighter,
De pagina begint met <html> en heeft geen Doctype. Verder: geen <head></head> sectie, geen <title> en geen <meta> met de charset: dus nogal invalid html.
Wel een stylesheet-aanroep in de <body>, die in de <head> hoort te staan.

Kan dat ermee te maken hebben?

Met vriendelijke groet,
CSShunter
 
Hoi Earthfighter,
De pagina begint met <html> en heeft geen Doctype. Verder: geen <head></head> sectie, geen <title> en geen <meta> met de charset: dus nogal invalid html.
Wel een stylesheet-aanroep in de <body>, die in de <head> hoort te staan.

Heb ik ook gedaan. Heeft tot nu toe geen resultaat opgeleverd.
 
Ik zie dat je je code hebt geüpdatet, maar hier zitten nog meer fouten in dan voorheen.

  • <form> hoort voor <select>
  • In de actie van je <form> mist weer een ";" na de echo
  • Op regel 47 staat code die foutieve HTML veroorzaakt, deze hele regel kan weg
 
Hoi Earthfighter,
In je gewijzigde code van de startvraag staat nu de <body>-tag vóór de <head> ipv na de </head>. :rolleyes:

/edit/
O ja, de <html>-tag moet bij dit Doctype luiden:
HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
 
Laatst bewerkt:
Hey forumleden.
Ik ben er nog steeds niet uit. Snap er echt helemaal niks van. Ik heb 100 verschillende websites bezocht en van alles geprobeerd maar geen resultaat.
Mijn dropbox lijkt gevuld met records. Ik kan ze alleen niet zien.

Heeft iemand een voorbeeld hoe hij/zij het heeft gedaan via php/mssql?
 
Mijn dropbox lijkt gevuld met records.
Lijkt? Hij is het of hij is het niet! ;) In de broncode van de resultaatpagina kan je zien of het binnenhalen van de records gelukt is.

Ik kan ze alleen niet zien.
Als ze wel in de html-code staan, zal het toch aan de css liggen (of een vreselijk eigenwijs javascript dat ermee aan de haal gaat).

Vandaar de vraag: heb je een testpagina, waarop het live te zien is wat er wel/niet gebeurt?

Met vriendelijke groet,
CSShunter
 
In de broncode bedoel je de code die wordt opgeroepen wanneer je php script opent in een browser. Dat is dan mijn formulier. Ik heb voor de rest mijn css weggehaald zodat de code zo schoon mogelijk is.

In de bijlage zie je wat ik op dit moment zie. Een lange lege rij.

Ik heb jammer genoeg geen testpagina die online staat.
 

Bijlagen

  • dropdown.jpg
    dropdown.jpg
    6,6 KB · Weergaven: 22
Een screenshot van de broncode is wellicht meer bruikbaar ;)

Zo te zien wordt er gewoon geen waarde ingevuld maar worden de elementen wel aangemaakt.
Kortom, hij gaat wel het aantal rijen uit de database (op basis van de query) bij langs maar de variabele is leeg.

Doe dit eens zonder enige HTML:
PHP:
while ($data = odbc_fetch_row($res))
{
  var_dump($data);
}

Dan krijg je te zien wat die variable allemaal bevat en hoe je die aan moet roepen :)
 
Ik zie nu dat al mijn waarde als true worden weergegeven. Ik gebruik misschien de verkeerder functie in mijn code.

<P>Verbinding<br/>

<form method="post" action="action.php">
<select class="element select large" id="element_19" name="projectcode_1">


bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
etc.
etc.
 
Probleem opgelost>>

Ik had een verkeerde functie gebruikt. Ik had odbc_fetch_array nodig.

In ieder geval heel veel dank voor jullie hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan