Hallo,

Ik probeer een formulier te maken, waar men de ontvanger van het bericht kan selecteren dmv een dropdown list.
Nu heb ik gezocht naar een goed werkend script.
Ik heb onderstaande gevonden, alleen ik krijg de namen niet in beeld.

Ik heb bewust het blokje met het php script links staan, omdat ik het dan makkelijker kan weer vinden en lezen.

Onderstaand een deel van het script:


<? 
if (!session_id()) { session_start(); };
include("config.php");// sleep(12);
$db = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
$res = "select * from members where id='$id'";
$result = mysqli_query($db,$res);
if ($myrow = mysql_fetch_array($result)) {
	$aan_naam = $myrow['naam'];
}
$u_id=$_SESSION['user_id'];
$u_naam=$_SESSION['is_naam'];
$etime=time();
$aan_naam = $myrow['naam'];

//voor tabel


?>
<center><br>
            <? include("tboven"); ?><h3>Stuur nu een bericht </h3>

			<form name="mailstuur" action="" onsubmit="ajax1.post('mail-post.php','mailstuur','content'); return false;" >
				<table cellpadding="0" cellspacing="1" width="550" class="mailTable" style="text-align:left;">
					<tr>
					<td class="tableHeader" colspan=2 align="right"><img align=absmiddle  src="icons1/3/01/16/47.png"> Postvak Uit</td>
					</tr>
					<tr class="tableRow1">
						<td class="tableHeader" width="90"><img align=absmiddle  src="icons1/3/01/16/02.png"> Aan:</td>
						<td class="tableRow" width="*">
					<?php

echo "<select name= 'naam'>";
echo '<option value="">'.'--- Selecteer Naam ---'.'</option>';
$query = mysqli_query($db,"SELECT id, naam FROM members");
while($row=mysqli_fetch_array($query))
{
    echo "<option value='". $row['id']."'>".$row['naam'].'</option></td>';
}
echo '</select>';
?>


Waar komt $id vandaan?
ten eerste bedankt voor het juist wegzetten van het script, ik probeerde script, maar dat werkte niet ;)

$row['id'] komt uit regel 34.
Als ik regel 30 t/m 40 in een leeg bestand plaats, dan werkt het allemaal wel.
Dus ik heb zelf het idee dat het door regel 37 komt, dat ik $row['id'] en $row['naam'] niet goed heb.
Maar ik heb het over $id op lijn 5 ;-)

je statement op regel 7 is ook een beetje vreemd.
Inderdaad, die heb ik helemaal niet nodig. Ik wilde een naam weergeven in het tabel als afzender, maar dat laat ik achterwege, dus die regels heb ik inmiddels verwijderd. Dat zijn regel 5 t/m 9 én 13.
Nog zie ik de namen niet :(
Ik zou eerst maar eens aan goede foutafhandeling beginnen op je mysqli_query(), en kijken wat mysqli_error($db) te zeggen heeft.

Zorg ook dat je error reporting aan hebt staan aan het begin:

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>


Verder raad ik de shorthand <? ook niet aan om te gebruiken. Gebruik liever de volledige PHP-start tag.

En klopt het ook dat er een extentie mist in je te includeren bestand?

En wat doet die </td> in je loop? Ik denk dat dit je select-box om zeep helpt.
Ik heb je punten aangepast, ik zal hier het script updaten zoals het nu is.
Ik krijg geen foutmeldingen en het werkt ook nog niet


<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
if (!session_id()) { session_start(); };
include("config.php");
$db = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
$u_id=$_SESSION['user_id'];
$u_naam=$_SESSION['is_naam'];
$etime=time();

//voor tabel


?>
<center><br>
            <? include("tboven.html"); ?><h3>Stuur nu een bericht </h3>

			<form name="mailstuur" action="" onsubmit="ajax1.post('mail-post.php','mailstuur','content'); return false;" >
				<table cellpadding="0" cellspacing="1" width="550" class="mailTable" style="text-align:left;">
					<tr>
					<td class="tableHeader" colspan=2 align="right"><img align=absmiddle  src="icons1/3/01/16/47.png"> Postvak Uit</td>
					</tr>
					<tr class="tableRow1">
						<td class="tableHeader" width="90"><img align=absmiddle  src="icons1/3/01/16/02.png"> Aan:</td>
						<td class="tableRow" width="*">
					<?php

echo "<select name= 'naam'>";
echo '<option value="">'.'--- Selecteer Naam ---'.'</option>';
$query = mysqli_query($db,"SELECT id, naam FROM members");
while($row=mysqli_fetch_array($query))
{
    echo "<option value='".$row['id']."'>".$row['naam'].'</option>';
}
echo '</select>';
?>
</td>
</tr>



[size=xsmall]Toevoeging op 05/04/2017 20:01:43:[/size]

Ik heb alles afgesloten en opnieuw geopend, kreeg toen wel een foutmelding over $u_naam. Die heb ik verwijderd omdat ik die toch niet nodig heb, en het werkt nu wel! bedankt voor de tips!
Zie ook mijn vorige opmerkingen, je hebt ze niet allemaal toegepast ;-)

Reageren