array textveld nieuwe waarde doorgeven na $_POST

Status
Niet open voor verdere reacties.

lefty999

Gebruiker
Lid geworden
5 jul 2002
Berichten
913
dag beste

ik heb een script geschreven dat alles uit een database haalt en dan deze weergeeft en in een array list zet

nu wil ik graag dat de gebruiker de prijs kolom kan aanpassen en als ik dan op Voeg toe klik dat hij deze aangepaste prijzen teruggeeft.

dus ook een array van de prijzen zodanig dat deze dan aangepast kunnen geupdate worden in het database

dit is het script.

PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  <?
include "config.php";
$result = mysql_query("SELECT * FROM assortiment");
$num_rows = mysql_num_rows($result);
$a = '0';
while( $row=mysql_fetch_assoc($result) )
{
  $titel[] = $row['titel'];
   $prijs[] = $row['prijs'];
//display tabel
echo "<table width='80%' border='1'>
  <tr>
    <td>$titel[$a]</td>
    <td><label>
      <input name='prijsdata' type='text' value='$prijs[$a]' />
    </label></td>
  </tr>
</table>";
   $a++;
}
?>
    <input name="send" type="submit" value="Voeg toe">

 <?php
if(isset($_POST['send']))
{
$naam = $_POST['prijsdata'];
echo $naam;


}
?>
 
Laatst bewerkt:
Ik neem aan dat de database rijen ook een ID hebben? De eerste stap is om die ook in de array te zetten, zodat je weet welke prijs bij welke rij hoort.

Vervolgens zet je die ID in de name van het input veld (HTML ondersteunt namelijk ook arrays, op deze manier:)

HTML:
<input type="text" name="prijzen[<?php echo $id ?>]" value="<?php echo $prijs ?>" />

Daarna moet je, als de gebruiker op submit drukt, door je array heenlopen en een reeks SQL update queries maken, die elk er ongeveer zo uit zien:

"UPDATE assortiment SET prijs = $nieuweprijs WHERE id = $id"
(let op dat je eerst controleert dat alle keys en values integers zijn, anders krijg je een security leak)

Vervolgens run je die hele serie queries, en dan worden alle prijzen ge-update.

Kijk maar of je er uit komt, en geef anders maar aan waar je vast loopt :)
 
en hoe werkt het dan met de post commando??

$naam = $_POST['prijzen[<?php echo $id ?>]'];
of op welke manier haal ik deze er dan terug uit??
 
Er komt dan in $_POST een veld 'prijzen', en dat is zelf weer een array.

Dus je krijgt zoiets:

PHP:
$prijzen_array = $_POST['prijzen'];
foreach ( $prijzen_array as $id => $prijs ) {
  // doe hier een update query
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan