Abfrage in eine Auswahlbox

DokFerien

Grünschnabel
Guten Tag …

Habe nun angefange mit php und iss ja mal nicht einfach muss ich mal sagen …..
Habe mal 3 Fragen wenn ihr Zeit dafür habt.

1) Ich habe einen Apache-Server mit einer Interbase-Datenbank und Php 4.
2) Nach dem Einganggebimmel habe ich eine PHP-Seite, welche dann mit der Datenbank kommuniziert.
3) Habe da schon eine Ausgabe von Daten vollbracht und nun möchte ich eine Eingabe und eine Auswahl realisieren und an die nächste PhP-Datei übergeben.

Hier erstmal der Dateiausschnitt der dich meiner Meinung nach interessiert.

PHP:
<b>Bitte suchen sie sich den Login-Namen aus und targen sie die Beratung über die Nummer aus:</b>
<br> <br>
//<form action = "Beratungsschritt.php method = "post">
<?
      $Kunde = ibase_query ("Select Kund_Id, Kund_Login from Kunde");

      while($row = ibase_fetch_row ($Kunde))
      (
      Print ("Nummer ".$row[0]." hat den Login ".$row[1]." bekommen")
      )
<select name="Login" size="3">
    <option>
    <option>
</select>
<br>
Die Nummer der Beratung bitte:
<input type="text" name="Beratungsnummer">
?>
<input type = "submit" value = "Start der Beratung">

- also wie ihr seht möchte ich dann zur Seite Beratungsschritte.php 2 Werte übergeben
o einen Auswahl von Kunden
o eine eingegebene Zahl (ist in diesem Fall die ID einer Beratung, welche ich vorher in der Seite ausgegeben habe)
- nun habe ich in Bücher gesehen das dieses action mit der Methode post Werte übergeben kann und wenn ich dann den Button submit verwende geht die Post ab

Kommen wir nun zu meinen Fragen:
1) In der Abfrage $Kunde habe ich nun alle Einträge der Tabelle. Genau diese Einträge (Habe ich mir zur Kontrolle in der schleife ausgeben lassen) möchte ich in die Auswahlbox eintragen lassen. Nun habe ich ja mal keine Ahnung wie ich die „Kund_Login“ in die Auswahlbox übertragen lassen kann. Ich habe mir überlegt das es bestimmt möglich ist die ausgewählten Datensätze in eine Liste zu packen und dann die Liste über eine Schleife in die Auswahlbox zu geben. Aber wie das geht habe ich nirgends im Web oder Büchern gefunden.
2) Des Weiteren möchte ich einen Eintrag in die Textbox machen lassen. Dieser Eintrag soll nur eine Zahl darstellen. Die Textbox habe ich schon dargestellt aber ich weiß nicht wie ich dann bei der Übergabe sagen dass dies die ID meines ausgewählten Datensatzes ist.
3) Als letztes interessiert mich wie diese 2 Werte dann an die Beratungsschritte.php übergeben werden. Muss ich da so was wie eine globale Variable erstellen. Ich habe einen connect.php erstellt die ich am Anfang immer aufrufe, da könnte ich die globalen Variablen verwalten. Aber so richtig habe ich das noch nicht verstanden. Wenn dann der Button gedrückt wird startet doch automatisch die neue Seite und wie kann ich mit dann die 2 Variablen zur Kontrolle ausgeben lassen?

Ich hoffe ich habe meine Fragen deutlich gestellt und auch den richtigen Quellcodeausschnitt reinkopiert.

Das ist auch leider erst der einfach Teil der Sache aber ich lese fleißig Bücher.

Bin dankbar für deine Hilfe

dok


--------------------------------
*Edit*

So habe nun mal was versucht was auch nicht ging aber was sagt ihr zu der Idee?
PHP:
<form action = "Beratungsschritt.php method = "post">
<?
      $Kunde = ibase_query ("Select Kund_Id, Kund_Login from Kunde");?>

<select name="Login" size = 1>
      <?
      while($row = ibase_fetch_row ($Kunde))
      (
      echo "<option value=\"$row->Kund_Login\">...</option>"; 
      )
?>
</select>
*Edit*
 
Zuletzt bearbeitet:
So sollte es funktionieren (ist allerdings alles sehr unübersichtlich formatiert):
PHP:
<form action="Beratungsschritt.php" method="post">
<?php
$Kunde = ibase_query ("SELECT Kund_Id, Kund_Login FROM Kunde");
?> 
<select name="Login"> 
<?php 
while($row = ibase_fetch_assoc($Kunde)) { 
    echo '<option value="'.$row['Kund_Id'].'">'.$row['Kund_Login'].'</option>'; 
} 
?> 
</select><br />
Die Nummer der Beratung bitte: 
<input type="text" name="Beratungsnummer"><br />
<input type="submit" name="btn_submit" value="Start der Beratung">
</form>

Beratungsschritt.php sollte dann so aussehen:
PHP:
if (!$_POST['Login'] || !$_POST['Beratungsnummer']) {
    echo 'Die Felder wurden nicht ausgefüllt!';
} else {
    echo 'Login: '.$_POST['Login'].'<br />Beratungsnummer: '.$_POST['Beratungsnummer'];
}
Du greifst als in der Beratungsschritt.php die vorher mit POST gesendeten Felder mit dem superglobalen Array $_POST und dem entsprechenden Feldnamen wieder auf ($_POST['eingabefeld_name']).
 
geht leider nicht

mmmm habe das mal so gemacht wie ihr geraten habt. schreibe nochmal den gesamten quellcode hier hin.

PHP:
<?php
include ("Connect.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
    <title>Beratungen</title>
</head>

<body bgcolor="white" text="Black">
<center><h3>Vorhandene Beratungen</h3></center>
<table bgcolor = "silver" border = 0
       CellPadding = 1 cellSpacing = 2 width = 100%>
       <colgroup>
                  <col width="10%">
                  <col width="30%">
                  <col width="60%">
       </colgroup>

<tr>
    <td bgColor = "#eeeee" Colspab = 2>
        <center><b>Nummer der Beratung</b></center>
    </td>
    <td bgColor = "#eeeee" Colspab = 2>
        <center><b>Name der Beratung</b></center>
    </td>
    <td bgColor = "#eeeee" Colspab = 2>
        <center><b>Beschreibung</b></center>
    </td>
</tr>

<?
       $Beratungen = ibase_query ("SELECT Bera_Id, Bera_Bez, Bera_Besch, Bera_Frei from Beratung where (Beratung.Bera_Frei = 1)");

       while($row = ibase_fetch_row ($Beratungen))
{
?>
    <tr>
    <td bgcolor="white" Colspab = 2>
    <center><? print ("(".$row[0].") ");?></center>
    </td>
    <td bgcolor="white" Colspab = 2>
    <center><? print ($row[1]);?></center>
    </td>
    <td bgcolor="white" Colspab = 2>
    <center><? print (ibase_blob_echo($row[2]));?></center>
    </td>
 </tr>
<?
}
?>
</table>
<br> <br>
<b>Bitte suchen sie sich den Login-Namen aus und targen sie die Beratung über die Nummer aus:</b>
<br> <br>
<br> <br>

<form action="Beratungsschritt.php" method="post">
<?php
$Kunde = ibase_query ("SELECT Kund_Id, Kund_Login FROM Kunde");

while($row = ibase_fetch_row ($Kunde))
      (
      Print ("Nummer ".$row[0]." hat den Login ".$row[1]." bekommen")
      )
?>
<br> <br>

<br> <br>
<select name="Login" size="1">
<?php
while($row = ibase_fetch_assoc($Kunde))
{
    echo '<option value="'.$row['Kund_Id'].'">'.$row['Kund_Login'].'</option>';
}
?>
</select><br>  <br> <br>
Die Nummer der Beratung bitte:
<br> <br>
<input type="text" name="Beratungsnummer"><br />
<input type="submit" name="btn_submit" value="Start der Beratung">
</form>

<br>
</body>
</html>


Leider ist die uswahlbox immer noch leer und ich habe keine ahnung wieso. die ausgabeschleife gibt mir 2 einträge der tabelle 'kunde' zurück aber in die auswahlbox werden sie nicht geladen.

ich weiss nicht mehr weiter und das iss echt doof .......

danke im voraus

dok
 
Nimm die ganze erste Schleife (deine sog. "Ausgabeschleife") mal komplett aus dem Script raus oder kommentier sie aus (/* ... */).
Dann könnte es funktionieren.
 
Zurück