Eric Butera wrote:
On Fri, Mar 14, 2008 at 6:02 AM, Zoltán Németh <znemeth@xxxxxxxxxxxxxx> wrote:
2008. 03. 14, péntek keltezéssel 14.08-kor Suamya Srivastava ezt írta:
Hi,
>
> How can I send multiple values from a form to be stored in a database, as
> name of the fields is the same?
>
> For example:
>
> <?php
> foreach ($field_data as $field) {
>
> $field_name=$field["field_name"];
> $field_id=$field["field_id"];
> $datatype=$field["datatype_name"];
>
> ?>
> <input type="hidden" name="field_id" value="<?php echo $field_id;?>" />
> <tr>
> <td><strong><?php echo $field_name;?><strong></td>
> <?php
> if ($datatype=="text" || $datatype=="integer") {
> echo "<td><input type=\"text\" name=\"field_data\"></td>";
make field_data an array indexed by field_id
<input type="text" name="field_data[<?php echo $field_id; ?>]"
greets,
Zoltán Németh
> }
> elseif ($datatype=="textarea") {
> echo "<td><textarea rows=\"10\" cols=\"100\"
> name=\"field_data\"></textarea><br></td>";
> }
> echo "</tr>";
> }
> ?>
>
> This creates a form with field names and text box or textarea box next to
> each field name depending on the datatype. After the user enters the
> values in the text or textarea and clicks submit, the values should get
> stored in a database. But what is happening is that only the value entered
> in the last field of the form is getting entered into the database.
> This code is embedded in an application which is having an inbuilt
> structure of taking the values from a form in a hash. Since key is the
> same (i.e. field_id) everytime, the value gets overwritten and only the
> last value gets stored in db. But I am not able to work out a solution for
> this.
> I hope I am able to make my problem clear enough.
>
> Thanks,
> Suamya.
>
>
>
>
> -----------------------------------------------------------------------------
> DISCLAIMER:-
> "The information in this e-mail is confidential, and is intended
> solely for the addressee or addressees. If you are not the intended recipient,
> please delete the mail and kindly notify the sender of misdelivery. Any
> unauthorised use or disclosure of the contents of the mail is not permitted
> and may be unlawful."
> -----------------------------------------------------------------------------
>
> "Scanned By MailScanner"
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Since Zoltán give you the answer I might give you another fish. Which
one is more readable:
<input type="hidden" name="field_id" value="<?php echo $field_id;?>" />
<tr>
<td><strong><?php echo $field_name;?><strong></td>
<?php
if ($datatype=="text" || $datatype=="integer") {
echo "<td><input type=\"text\" name=\"field_data\"></td>";
}
elseif ($datatype=="textarea") {
echo "<td><textarea rows=\"10\" cols=\"100\"
name=\"field_data\"></textarea><br></td>";
}
echo "</tr>";
}
?>
<input type="hidden" name="field_id" value="<?php echo
htmlspecialchars($field_id); ?>" />
<tr>
<td><strong><?php echo htmlspecialchars($field_name); ?><strong></td>
<?php if ($datatype=="text" || $datatype=="integer"): ?>
<td><input type="text" name="field_data"></td>
<?php elseif ($datatype=="textarea"): ?>
<td>
<textarea rows="10" cols="100" name="field_data"></textarea>
<br>
</td>
<?php endif; ?>
</tr>
This is more readable
<?php
while ( $row = mysql_fetch_row($result_set) ) {
# Extract all data fields from result set
list($datatype,$field_id,$field_name,etc...) = $row;
# Initialize or clear variable
$field = '';
# Check to see if it requires a text field
if ( $datatype == "text" || $datatype == "integer" ) {
# Create Text field
$field = '<input type="text" name="field_data[{$field_id}]" />';
# Check to see if it requires a text area
} elseif ( $datatype == "textarea" ) {
# Create Text Area
$field = '<textarea rows="10" cols="100" name="field_data[{$field_id}]">'.
'</textarea>';
}
# Display it all
echo <<<ROW
<tr>
<td><strong>{$field_name}</strong></td>
<td>{$field}</td>
</tr>
ROW;
}
?>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php