Ergebnisliste in Formular übernehmen

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

ich bin in einem kleinen Projekt nun an einer Stelle angekommen, an der ich mit PHP nicht mehr komfortabel weiterkomme und werde mich daher mit Javascript beschäftigen müssen. Meine letzten Versuche sind allerdings 10 Jahre her, so dass ich Hilfe benötige.
Ich habe eine gut gefüllte Datenbank, aus der ich mir eine dynamisch eine Ergebnisliste erstelle.
Kein Problem.
Nun soll es so sein, dass sich über der Liste ein leeres Formular befindet. Wird nun in eine Zeile des Ergebnisses geklickt, so sollen die Daten dieser Zeile in das Formular übernommen werden.
Hier die Probleme:
1) Wie schaffe ich es, dass immer eine gesamte Zeile markiert wird?
2) Wie bekomme ich die Daten aus der Ergebnisliste in das Formular, ohne die Seite neu zu laden?

Bisher waren meine Gedanken, dass ich mit zwei Formularen arbeite:
Zunächst das zuerst leere Formular:
HTML:
<form method='POST' id='eingabeformular' name='eingabeformular'>
  <input type='text' maxlength='20' length='20' name='druckername' value='-soll sich füllen-' />
  <input type='text' maxlength='20' length='20' name='druckerIP' value='-soll sich füllen-' />
</form>

Dann das automatisch generierte aus der Datenbank (verkürzt):
PHP:
echo "\n\t<form name='druckerliste' id='druckerliste' method='POST'>";
  echo "\n\t\t<table>";
  echo "\n\t\t\t<tr>";
  while ($row = mysqli_fetch_row($res))
  {
  echo "\n\t\t\t<tr>";
  echo "\n\t\t\t\t<td><input type='text' maxlength='20' length='20' readonly='readonly' name='druckername$i' value='$row[0]' /></td>";
  echo "\n\t\t\t\t<td><input type='text' maxlength='20' length='20' readonly='readonly' name='ip$i' value='$row[1]' /></td>";

  echo "\n\t\t\t</tr>";
  $i++;
  }
  echo "\n\t\t</table>";
  echo "</form>";

Und damit hören meine Ideen auf :(
Ich bräuchte einen Denkanstoß. Durch den Rest kann ich mich dann irgendwie durcharbeiten.
 
Zuletzt bearbeitet:
Kleines Update:
Das Zeilenmarkieren konnte ich lösen:
Code:
var oldRow = null; 
function zeile_markieren( evt ) 
{ 
  var selectedRow = ( evt.target || evt.srcElement ); 
  while ( selectedRow.tagName != "TR") 
  selectedRow = selectedRow.parentNode; 
  if ( oldRow ) 
  { 
  oldRow.style.backgroundColor = ""; 
  if ( oldRow == selectedRow ) 
  return true; 
  }; 
  selectedRow.style.backgroundColor = "yellow"; 
  oldRow = selectedRow;

Das Übernehmen der Werte würde ich so lösen:
Code:
  document.eingabeformular.druckerIP.value=document.druckerliste.ip.value; 
  document.eingabeformular.druckername.value=document.druckerliste.druckename.value;
Das Problem: Wie komme ich an den Wert der ausgewählten Zeile, also an document.druckerliste.ip1.value bzw. document.druckerliste.ip2.value usw.
 
Ich konnte das Problem nun lösen.
Ich habe aus der Tabelle 'druckerliste' alle INPUT-Felder entfernt und durch <td></td ersetzt. Dann mit getElementById und dann mit "cells" die Werte geholt.
Code:
  var table = document.getElementById('alledrucker');  // Alle Elemente aus der Tabelle "alledrucker" holen
  var druckername=table.rows[zeile].cells[0].innerHTML;
 

Neue Beiträge

Zurück