Apologies, I dont know whether if this is more a Javascript or PHP query, but I am a bit stuck with getting a form button and action to work separately on each line of my PHP loop.
Currently the first button works, but if you decide to click a button on another line the first field is populated and not on the line of the button pressed.
function fgetcsv_PHP()
{
/*
* See if we can open a file named fgetcsv.csv in
* read mode, if we can then assign pointer to this
* file to a variable named $handle
* 'r' - Open for reading only; place the file
* pointer at the beginning of the file.
*/
if (($handle = fopen("./assets/actors.csv", "r")) !== FALSE)
{
/*
* fgetcsv( resource $handle int $length string $delimiter )
*
* resource $handle
* A valid file pointer to a file successfully opened by fopen(),
* popen(), or fsockopen().
*
* int $length
* Must be greater than the longest line (in characters) to be
* found in the CSV file (allowing for trailing line-end characters).
* It became optional in PHP 5. Omitting this parameter (or setting
* it to 0 in PHP 5.0.4 and later) the maximum line length is not
* limited, which is slightly slower.
*
* string $delimiter
* Set the field delimiter (one character only).
*
* RETURN VALUES
*
* Returns an indexed array containing the fields read.
*
* Note: A blank line in a CSV file will be returned as an array
* comprising a single null field, and will not be treated
* as an error.
*
* Note: If PHP is not properly recognizing the line endings when
* reading files either on or created by a Macintosh computer,
* enabling the auto_detect_line_endings run-time configuration
* option may help resolve the problem.
*
* fgetcsv() returns NULL if an invalid handle is supplied or FALSE
* on other errors, and when the end of file has been reached.
*/
$length = 1000;
$delimiter = ",";
/*
* Print the opening table tag to begin buiding HTML table
* and the first row of the table; with column names
*/
echo "<table>\n";
echo "<td> </td><td width='90px'><b>Name</b></td><td><b>Surname</b></td>";
/*
* Loop through the array of values returned by fgetcsv until there are
* no more lines (indicated by FALSE)
*/
while ( ( $data = fgetcsv( $handle, $length, $delimiter ) ) !== FALSE )
{
// Count number of array elements in $data
$num = count($data);
// Print opening table row HTML tag
echo "<tr>\n";
echo "<td width='90px'><button onclick='myApproach();'>Approach</button></td>\n";
/*
* Loop through the $data array and output each element
* wrapped by opening and closing table data HTML tags
*/
for ($c=0; $c < $num; $c++)
{
echo "<td>".$data[$c]."</td>\n";
}
as you are using same id for input field, so when you try to access input field using document.getElementById("age") the very first matched element is returned.
what you need to do is to assign different id to the input filed on each line. for example: age1, age2, age3 etc...
Bookmarks