Probleem met value dropdownbox en waarde database ophalen
Door
Gert Molemans
op 13-06-2016 14:30
gewijzigd op 13-06-2016 14:38
1.884 views
Beste forum leden
Ik ben bezig met een phph file maar loop vast.
Wat wil ik bereiken
Stap 1: Ik heb een dropdown menu (ddmnieuwe_status) gevuld met waarden uit de database
Dit lukt :)
Stap2: Met JavaScript haal ik de value uit de dropdown (ddmnieuwe_status)
Ik denk dat het daar misloopt (maar de fout zie ik niet)
Stap 3: Met deze opgehaalde value wil ik in de datebase een bijhorende entry ophalen
Stap 4: die entry moet getoond worden in het tekstveld txtbericht
<?php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
</head>
<body>
<?php
$conn = new mysqli('localhost', 'root', '', 'db_helpdesk')
or die ('Cannot connect to db');
$id = $_POST["txtid"];
$sql = "SELECT * FROM tb_ticket WHERE id='" . $id . "'";
$result = $conn->query($sql);
Als ik het goed begrijp dient die status-dropdown als een soort van filter om alle tickets met een specifieke status op te halen? Of moet er simpelweg een specifiek status-bericht getoond worden op grond van de status die je selecteert?
Persoonlijk zou ik de status identificeren met een nummer (het auto increment id uit de tabel tb_bericht?) en niet met de letterlijke bijbehorende tekst :/.
Je wilt dus een standaard tekst uit de tb_bericht die hoort bij die ticketstatus plakken in de textarea, bij wijze van standaard reactie? Deze teksten zul je ergens bij moeten houden dan. Deze zou je bijvoorbeeld als data-attribuut kunnen opslaan bij de option wellicht.
Daarnaast gebruikt je document.getElementById(txtbericht) (txtbericht moet waarschijnlijk tussen quotes?) maar je textarea heeft alleen een name, geen id.
IK ben denk ik al iets verder.
Alleen vanaf als ik een echo doe (lijn 88) verdwijnt mijn txtberichtenbox.
Ziet iemand waarom ik dat resultaat niet gewoon in mijn txtberichen krijg?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
</head>
<body>
<?php
$conn = new mysqli('localhost', 'root', '', 'db_helpdesk')
or die ('Cannot connect to db');
$id = $_POST["txtid"];
$sql = "SELECT * FROM tb_ticket WHERE id='" . $id . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$row = $result->fetch_assoc();
$school = $row["school"];
$lokaal = $row["lokaal"];
$urgentie = $row["urgentie"];
$datum = $row["datum"];
$leerkracht = $row["leerkracht"];
$toestel = $row["toestel"];
$probleem = $row["soortprob"];
$beschrijving = $row["beschrijving"];
$status = $row["status"];
$onderwerp = $row["onderwerp"];
} else {
echo "0 results";
}
$sqlbericht = "SELECT * FROM tb_bericht";
$resultbericht = $conn->query($sqlbericht);
$sqlid1 = "SELECT status FROM tb_bericht WHERE id=1";
$resultid1 = $conn->query($sqlid1);
$sqlid2 = "SELECT status FROM tb_bericht WHERE id=2";
$resultid2 = $conn->query($sqlid2);
$sqlid3 = "SELECT status FROM tb_bericht WHERE id=3";
$resultid3 = $conn->query($sqlid3);
//$conn->close();
?>
<h3><?php echo "Ticket: " . $onderwerp; ?></h3>
<table width="100%" border="1">
<tbody>
<tr>
<td>School: <?php echo $school; ?></td>
<td>Lokaal: <?php echo $lokaal; ?></td>
<td rowspan="3" align="center"><img src="grondplannen/<?php echo $lokaal; ?>.jpg" align="middle" width="96" height="132" alt=""/></td>
</tr>
<tr>
<td>Gebruiker: <?php echo $leerkracht; ?></td>
<td>Toestel: <?php echo $toestel; ?></td>
</tr>
<tr>
<td>Datum: <?php echo $datum; ?></td>
<td>Beschrijving: <?php echo $beschrijving; ?></td>
</tr>
</tbody>
</table>
<br />
<br />
<p>Status: <?php echo $status; ?></p>
<p>Nieuwe status: <select name="ddmnieuwe_status" onChange="showBericht(this.value)" required>
<option value=""> Kies een status </option>
<?php
while ($rowbericht = $resultbericht->fetch_assoc())
{
echo '<option value="'.$rowbericht['id'].'">'.$rowbericht['status'].'</option>';
}
?>
</select></p>
<script type="text/javascript">
function showBericht(value)
{
if (value == 2){
var bericht = "<?php
// $sqlid = "SELECT bericht FROM tb_bericht WHERE id=2";
//$resultid = $conn->query($sqlid);
//$result2 = $resultid['bericht'];
echo $resultid2;
?>";
document.getElementById('txtbericht').value = bericht;
alert(bericht);
}else if (value == 3){
var bericht = "<?php echo $rowbericht['bericht'] ?>";
document.getElementById('txtbericht').value = bericht;
}else if (value == 1){
var bericht = "<?php echo $rowbericht['bericht'] ?>";
document.getElementById('txtbericht').value = bericht;
}
}
</script>
<input type="checkbox" name="chxbericht" id="chxbericht" />
<label for="chxbericht">Wilt u een persoonlijk bericht naar de melder sturen?</label>
<br />
<br />
<textarea rows="8" cols="80" id="txtbericht"> </textarea>
</body>
</html>
<?php $conn->close(); ?>
Alvast bedankt
Groeten Gert
[size=xsmall]Toevoeging op 23/06/2016 12:26:10:[/size]
Hallo allrmaal
Ik ben al iets verder geraakt. Mijn txtbericht verdwijnt niet meer maar hij wordt nog altijd niet gevuld met de bijhorende waarden
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
</head>
<body>
<?php
$conn = new mysqli('localhost', 'root', '', 'db_helpdesk')
or die ('Cannot connect to db');
$id = $_POST["txtid"];
$sql = "SELECT * FROM tb_ticket WHERE id='" . $id . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$row = $result->fetch_assoc();
$school = $row["school"];
$lokaal = $row["lokaal"];
$urgentie = $row["urgentie"];
$datum = $row["datum"];
$leerkracht = $row["leerkracht"];
$toestel = $row["toestel"];
$probleem = $row["soortprob"];
$beschrijving = $row["beschrijving"];
$status = $row["status"];
$onderwerp = $row["onderwerp"];
} else {
echo "0 results";
}
$sqlbericht = "SELECT * FROM tb_bericht";
$resultbericht = $conn->query($sqlbericht);
$sqlid1 = "SELECT bericht FROM tb_bericht WHERE id=1";
$resultid1 = $conn->query($sqlid1);
$id1 = $resultid1->fetch_assoc();
$sqlid2 = "SELECT bericht FROM tb_bericht WHERE id=2";
$resultid2 = $conn->query($sqlid2);
$id2 = $resultid2->fetch_assoc();
$sqlid3 = "SELECT bericht FROM tb_bericht WHERE id=3";
$resultid3 = $conn->query($sqlid3);
$id3 = $resultid3->fetch_assoc();
//$conn->close();
?>
<h3><?php echo "Ticket: " . $onderwerp; ?></h3>
<table width="100%" border="1">
<tbody>
<tr>
<td>School: <?php echo $school; ?></td>
<td>Lokaal: <?php echo $lokaal; ?></td>
<td rowspan="3" align="center"><img src="grondplannen/<?php echo $lokaal; ?>.jpg" align="middle" width="96" height="132" alt=""/></td>
</tr>
<tr>
<td>Gebruiker: <?php echo $leerkracht; ?></td>
<td>Toestel: <?php echo $toestel; ?></td>
</tr>
<tr>
<td>Datum: <?php echo $datum; ?></td>
<td>Beschrijving: <?php echo $beschrijving; ?></td>
</tr>
</tbody>
</table>
<br />
<br />
<p>Status: <?php echo $status; ?></p>
<p>Nieuwe status: <select name="ddmnieuwe_status" onChange="showBericht(this.value)" required>
<option value=""> Kies een status </option>
<?php
while ($rowbericht = $resultbericht->fetch_assoc())
{
echo '<option value="'.$rowbericht['id'].'">'.$rowbericht['status'].'</option>';
}
?>
</select></p>
<script type="text/javascript">
function showBericht(value)
{
if (value == 2){
var bericht = "<?php
// $sqlid = "SELECT bericht FROM tb_bericht WHERE id=2";
//$resultid = $conn->query($sqlid);
//$result2 = $resultid['bericht'];
//echo $id2['bericht'];
echo $id2['bericht'];
?>";
document.getElementById('txtbericht').value = bericht;
alert(bericht);
}else if (value == 3){
var bericht = "<?php echo $rowbericht['bericht'] ?>";
document.getElementById('txtbericht').value = bericht;
}else if (value == 1){
var bericht = "<?php echo $rowbericht['bericht'] ?>";
document.getElementById('txtbericht').value = bericht;
}
}
</script>
<input type="checkbox" name="chxbericht" id="chxbericht" />
<label for="chxbericht">Wilt u een persoonlijk bericht naar de melder sturen?</label>
<br />
<br />
<textarea rows="8" cols="80" id="txtbericht"> </textarea>
</body>
</html>
<?php $conn->close(); ?>
Groeten Gert
[size=xsmall]Toevoeging op 23/06/2016 14:07:17:[/size]
Het is gelukt
Het probleem is dat er in de database gegevens "" stonden
dit heb ik zo opgelost
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
</head>
<body>
<?php
$conn = new mysqli('localhost', 'root', '', 'db_helpdesk')
or die ('Cannot connect to db');
$id = $_POST["txtid"];
$sql = "SELECT * FROM tb_ticket WHERE id='" . $id . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$row = $result->fetch_assoc();
$school = $row["school"];
$lokaal = $row["lokaal"];
$urgentie = $row["urgentie"];
$datum = $row["datum"];
$leerkracht = $row["leerkracht"];
$toestel = $row["toestel"];
$probleem = $row["soortprob"];
$beschrijving = $row["beschrijving"];
$status = $row["status"];
$onderwerp = $row["onderwerp"];
} else {
echo "0 results";
}
$sqlbericht = "SELECT * FROM tb_bericht";
$resultbericht = $conn->query($sqlbericht);
$sqlid1 = "SELECT bericht FROM tb_bericht WHERE id=1";
$resultid1 = $conn->query($sqlid1);
$id1 = $resultid1->fetch_assoc();
$sqlid2 = "SELECT bericht FROM tb_bericht WHERE id=2";
$resultid2 = $conn->query($sqlid2);
$id2 = $resultid2->fetch_assoc();
/*$resultid2 = mysql_query("SELECT status FROM tb_bericht WHERE id=2");
$id2 = mysql_fetch_array($resultid2);*/
$sqlid3 = "SELECT bericht FROM tb_bericht WHERE id=3";
$resultid3 = $conn->query($sqlid3);
$id3 = $resultid3->fetch_assoc();
?>
<h3><?php echo "Ticket: " . $onderwerp; ?></h3>
<table width="100%" border="1">
<tbody>
<tr>
<td>School: <?php echo $school; ?></td>
<td>Lokaal: <?php echo $lokaal; ?></td>
<td rowspan="3" align="center"><img src="grondplannen/<?php echo $lokaal; ?>.jpg" align="middle" width="96" height="132" alt=""/></td>
</tr>
<tr>
<td>Gebruiker: <?php echo $leerkracht; ?></td>
<td>Toestel: <?php echo $toestel; ?></td>
</tr>
<tr>
<td>Datum: <?php echo $datum; ?></td>
<td>Beschrijving: <?php echo $beschrijving; ?></td>
</tr>
</tbody>
</table>
<br />
<br />
<p>Status: <?php echo $status; ?></p>
<p>Nieuwe status: <select name="ddmnieuwe_status" onChange="showBericht(this.value)" required>
<option value=""> Kies een status </option>
<?php
while ($rowbericht = $resultbericht->fetch_assoc())
{
echo '<option value="'.$rowbericht['id'].'">'.$rowbericht['status'].'</option>';
}
?>
</select></p>
<script type="text/javascript">
function showBericht(value)
{
if (value == 1){
var bericht = <?php echo json_encode($id1["bericht"]); ?>;
document.getElementById('txtbericht').value = bericht;
}else if (value == 2){
var bericht = <?php echo json_encode($id2["bericht"]); ?>;
document.getElementById('txtbericht').value = bericht;
}else if (value == 3){
var bericht = <?php echo json_encode($id3["bericht"]); ?>;
document.getElementById('txtbericht').value = bericht;
}
}
</script>
<input type="checkbox" name="chxbericht" id="chxbericht" onclick="enableDisable(this.checked, 'txtbericht')" />
<label for="chxbericht">Wilt u een persoonlijk bericht naar de melder sturen?</label>
<script language="javascript">
function enableDisable(bEnable, txtbericht)
{
document.getElementById(txtbericht).disabled = !bEnable
}
</script>
<br />
<br />
<textarea rows="8" cols="80" id="txtbericht" disabled> </textarea>
</body>
</html>
<?php $conn->close(); ?>