Vraag Textbox automatisch vullen vanuit database

#1
Hallo,

Momenteel zit in mijn stage ICT (applicatie en media ontwikkelaar) het bedrijf waarvan ik een opdracht heb wil graag een applicatie/website waar ze Non conformity's kunnen invullen. Nou heb een klein vraagje........zoals je hieronder in de code kan zien heb ik een form met daarin een optionbox aangemaakt waarin je het projectnummer kan zoeken via een database(MySQL)........nou zou ik graag willen dat als je het projectnummer aandrukt de 2 andere textboxen automatisch gevuld worden via een MySQL database met informatie zoals project leider & datum.

<form>
<select>
<?php while ($row1 = mysqli_fetch_array($result1)):; ?>
<option value="<?php echo $row1[0];?>"><?php echo $row1[1];?></option>
<?php endwhile;?>
</select>
Projectleider:<br>
<input type="text" name="Projectleider"><br>
Geplande datum gereed:<br>
<input type="text" name="Geplande datum gereed"><br>
</from>

Zoals je kunt zien heb ik kennis van Html, PHP, Javascript, CSS en MySQL.

Is er iemand die mij hiermee misschien kan helpen? Of een goede site weet die dit uitlegd? Zelf heb ik al 2uur zitten google naar een mogelijke oplossing.......maar weet niet precies hoe dit probleem te omschrijven in het engels.

Alvast bedankt!

Groet,

Rob
 

maarten70

Gevestigd lid
#3
Oh wacht, ik denk waarschijnlijk weer moeilijker dan het is... Ben ik erg goed in de laatste tijd. Bij een input type kan je ook een value doorgeven met 'value=' als je dat doet kan je bijvoorbeeld <input (...) value="<?php echo(blabla); ?>">
 

maulem

Gevestigd lid
#6
Ik beveel je aan Macromedia DreamWeaver MX2004. Download eerst de officiële trial versie van toen:
http://ftp.ntu.edu.tw/pub/cpatch/d/dreamweaver/source/dwmx2004_trial_en_win.exe

Er is een legaal serienummer beschikbaar op de site van adobe: https://helpx.adobe.com/nl/x-productkb/policy-pricing/macromedia-legacy-activation-error.html (dit geeft de mogelijkheid tot ongelimiteerd gebruik van DreamWeaver).

Ten tijde van de release van DreamWeaver MX2004 was de PHP-versie op alle webservers 4.3.
DreamWeaver MX2004 genereert daarom code die compatibel is met PHP 4.3. Inmiddels is de PHP versie
op alle moderne servers al opgeschoten naar versie 5.6. (In nieuwe versies van DreamWeaver wordt code gegenereerd die compatibel is met PHP 5.6.)

In DreamWeaver zitten wizards voor het samenstellen van bijvoorbeeld recordsets, invoerqueries,
updatequeries, deletequeries, dynamische inhoud van selectboxjes enz. De wizards in DreamWeaver
MX2004 genereren dus enkele verouderde database-methoden, methoden die eigenlijk niet compatibel zijn met de PHP-versie op de huidige webservers. Als je deze methoden tóch gebruikt samen met de nieuwe PHP 5.6 versie, worden er warnings (waarschuwingen) op het scherm weergegeven. De methoden blijven ondertussen gewoon bruikbaar.

Om deze warnings te onderdrukken moet je eerst een database connectie maken met de wizard MySQL Connection en daarna het databaseconnectiebestand jouw_connectienaam.php in de map Connections openen. Tik een @ vóór de aanroep van mysql_pconnect, zodat er komt te staan: $jouw_connectienaam = @mysql_pconnect( etc.

De PHP 5.6 interpreter op jouw webserver onderdrukt nu alle waarschuwingsmeldingen die betrekking hebben op versieconflicten.
 

maarten70

Gevestigd lid
#7
Dat raad ik af.

Volgende redenen:
1. Stage, je moet je houden aan de standaarden van het bedrijf waar je stage loopt
2. Dreamweaver is een programma waarbij vrij weinig komt kijken als het gaat om code. Ik heb het net even opgezocht en voor veel dingen hoef je alleen maar op insert te klikken en je kan er wat in gooien
3. De versie die je is aangeboden is sterk verouderd, MX2004 komt uit 2003
4. Je doet een opleiding, daar hoort Dreamweaver niet bij, je opleider zal het ook niet de bedoeling vinden
5. Een bedrijf raadpleegt jou of het bedrijf waar je stage loopt omdat ze meestal een professional ernaar willen laten kijken. Als je voor Dreamweaver gaat, hadden ze dat net zo goed niet kunnen doen want dan hadden ze het ook zelf kunnen doen met Dreamweaver.
6. Dreamweaver genereert code (netzoals OpenOffice dat doet) en die gegenereerde code is bagger. Het is inefficiënt en onnodig lastig in elkaar gezet.

Maar goed dat is wat ik vind.
 

maulem

Gevestigd lid
#8
hallo Rob

Ik heb jouw code al klaar! Toenet eventjes in DreamWeaver gemaakt. Ze maakt gebruik van twee recordsets, eentje voor het kiezen van het id in een dynamic select box en de andere voor de waarden in de textboxjes waar geldt dat het id gelijk is aan de eerder gekozen waarde. Na het kiezen van het id in de dynamic select box wordt het formulier herladen door onchange='this.form.submit()' en wordt de geconditioneerde recordset gemaakt. Deze voorziet de textboxjes van waarde. Voor het resultaat kun je (tijdelijk) kijken op: http://www.nandoweb.nl/test.php

PHP:
<?php require_once('Connections/nandoweb.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break; 
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

if (isset($_POST['select_boer_id']) && ($_POST['select_boer_id'] != "") ) {
    mysql_select_db($database_nandoweb, $nandoweb);
    $query_Recordset_boer_where_id = sprintf("SELECT * FROM boeren WHERE id = %s", GetSQLValueString($_POST['select_boer_id'], "text"));
    $Recordset_boer_where_id = mysql_query($query_Recordset_boer_where_id, $nandoweb) or die(mysql_error());
    $row_Recordset_boer_where_id = mysql_fetch_assoc($Recordset_boer_where_id);
    $totalRows_Recordset_boer_where_id = mysql_num_rows($Recordset_boer_where_id);
}

mysql_select_db($database_nandoweb, $nandoweb);
$query_Recordset_boeren = "SELECT id FROM boeren";
$Recordset_boeren = mysql_query($query_Recordset_boeren, $nandoweb) or die(mysql_error());
$row_Recordset_boeren = mysql_fetch_assoc($Recordset_boeren);
$totalRows_Recordset_boeren = mysql_num_rows($Recordset_boeren);



?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="test.php" method="POST" name="form1">
<select name="select_boer_id" onchange='this.form.submit()'>
  <?php
do {
?>
  <option value="<?php echo $row_Recordset_boeren['id']?>"><?php echo $row_Recordset_boeren['id']?></option>
  <?php
} while ($row_Recordset_boeren = mysql_fetch_assoc($Recordset_boeren));
  $rows = mysql_num_rows($Recordset_boeren);
  if($rows > 0) {
      mysql_data_seek($Recordset_boeren, 0);
      $row_Recordset_boeren = mysql_fetch_assoc($Recordset_boeren);
  }
?>
</select>
<input value="<?php echo $row_Recordset_boer_where_id['naam_boer']; ?>" name="naam_boer" type="text">
<input value="<?php echo $row_Recordset_boer_where_id['areaal']; ?>" name="areaal_boer" type="text">
</form>
</body>
</html>
<?php
mysql_free_result($Recordset_boeren);

mysql_free_result($Recordset_boer_where_id);
?>
--
Er zit alleen een klein foutje in merk ik net. Je moet nog zorgen dat de select box voor id na de eerste submit de gekozen waarde weergeeft, in plaats van zich te resetten.
--

Ik heb de fout net gecorrigeerd. De tag voor de option moet je veranderen in:

PHP:
<option value="<?php echo $row_Recordset_boeren['id']?>" <?php if($row_Recordset_boeren['id'] == $_POST['select_boer_id']){ ?> selected <?php }?> ><?php echo $row_Recordset_boeren['id']?></option>
 
Laatst bewerkt:

Nieuwste berichten

Bovenaan Onderaan