Formulardaten in DB mit Ajax

22hase

Grünschnabel
Morgen,


mein formular (auszug davon)

PHP:
echo '<td align="center">1 <input type="text" name="airport1[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="airport2[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="airport3[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="airport4[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="airportz[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="via[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="airline1[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="airline2[]" size="3"></td>';

  echo '<td align="center"><input type="text" name="preis[]" size="3"> €</td>';

  echo '<td align="center"><input type="text" name="tax[]" size="3">  €</td>';

  echo '<td align="center"><input type="text" name="saisonvon[]" size="6"></td>';

  echo '<td align="center"><input type="text" name="saisonbis[]" size="6"></td>';

  echo '<td align="center"><input type="text" name="buchbar[]" size="6"></td>';

  echo '<td align="center"><input type="text" name="aufmin[]" size="6"></td>';

  echo '<td align="center"><input type="text" name="aufmax[]" size="6"></td>';
Beispiel die ersten 4 Felder, da sollen kunden Airportcodes eingeben können. in der db soll es jedoch nur dieid speichern.


mein problem:

airportdaten sind alle schon vorhanden in der db (1502 stück), im normal fall kann man ja ne auswahlliste mache und im value die id weitergeben, bloß 1502 stück ist bissl viel für eine auswahlliste.

ich frage mich halt wie ich es hinbekomme das die, nur die kürzel angeben können und es dennoch bloß die Ids von den airports speichert


hoffe ihr habt vorschläge oder könnt helfen

PS: in einen anderen forum wurde mir ajax vorgeschlagen. gibt es für sowas ein tutorial oder hat schon jemand ein script was er mir geben würde *vorsichtig frag*

Grüßle
 
Moin Moin,

gehen tut dies sicher irgendwie, aber ich würde es vielleicht so herum angehen:

Also so, wie ich dich verstanden habe, hast du Datensätze mit einer ID und dem dazugehörigen Airport-Kürzel?

Falls ja, mal angenommen, TXL(Berlin Tegel) hat die ID 1... du willst jetzt also die 1 versenden lassen, wenn man TXL eingibt.
Das ist aber eigentlich nicht notwendig :)
So ein Airport-Kürzel ist ja ein Unikat, würde ich denken, also lasse die Leute doch das Kürzel versenden und schaue dann in der DB nach, welche ID dazu gehört, die Anpassungen am Query sollten minimal sein...und das Ganze ist dann sogar ohne JS benutzbar :)
 
Datenbank einträge (PHP Frage)

Morgen.

also so hole ich zum beispiel das erste feld und trage es ein.
PHP:
$port1 = $_POST['airport1']; 

for ($i=0; $i<count($port1); $i++)  
{  
$port11 = $port1[$i]; 
  
$airid = 'SELECT ID FROM port WHERE Code = \''.$port11.'\''; 
$erg = mysql_query($airid); 
while($a = mysql_fetch_object($erg)) 
{ 
 $eintrag = "INSERT INTO angebote_busineeclass  (IDs1) 
 VALUES ('".$a->ID."')"; 
  
 if(!mysql_query($eintrag)) 
 { 
  exit(mysql_error()); 
 } 
  else  
 { 
  echo '<strong><font color="#FF0000">Angebote erfolgreich gespeichert!</font></strong>'; 
 } 
 }  
} 
}

das formular sieht so aus.(Eine ziele wäre das von ca. 20)

PHP:
echo '<td align="center">1 <input type="text" name="airport1[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="airport2[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="airport3[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="airport4[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="airportz[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="via[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="airline1[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="airline2[]" size="3"></td>';
  echo '<td align="center"><input type="text" name="preis[]" size="3"> €</td>';
  echo '<td align="center"><input type="text" name="tax[]" size="3">  €</td>';
  echo '<td align="center"><input type="text" name="saisonvon[]" size="6"></td>';
  echo '<td align="center"><input type="text" name="saisonbis[]" size="6"></td>';
  echo '<td align="center"><input type="text" name="buchbar[]" size="6"></td>';
  echo '<td align="center"><input type="text" name="aufmin[]" size="6"></td>';
  echo '<td align="center"><input type="text" name="aufmax[]" size="6"></td>';

wenn ich nun mich an den zweite feld eintragen will mus ich ja auch erstmal durchzählen wie oben...aber ich bekomm das ne hin das es richtig in db einträgt..

habt ihr ideen? wie es besser geht oder so?

Grüßle
 
Also noch einmal zum Verständnis. :)

Du hast eine Tabelle à la

Code:
=======
|1|TXL|
|2|DUS|
|3|LAX|
=======


Dann würdest du doch die entsprechende ID auslesen:

PHP:
$query = mysql_query("SELECT id FROM port WHERE Code = '".mysql_real_escape_string($_POST['airport1'])."'");

$airport1_id = -1;

if(mysql_num_rows($query) > 0)
{
    $row = mysql_fetch_assoc($query);
    $airport1_id = $row['id'];
}

Dann noch die üblichen Sachen wie, prüfen ob $_POST['airport1'] leer ist, etc. und ab damit in die nächste Query?
 
Zuletzt bearbeitet:
hey. ist zwar net das mit den code aber wenn es so leicht wäre würd ich ne fragen ;)

mein formular sieht so aus

# AIRPORT 1 | AIRPORT 2 | AIRPORT 3 | AIRPORT 4 | ZIEL AIRPORT | usw..

1 eingabefeld | eingabefeld | eingabefeld | eingabefeld | eingabefeld | usw.
2 eingabefeld | eingabefeld | eingabefeld | eingabefeld | eingabefeld | usw.
3 eingabefeld | eingabefeld | eingabefeld | eingabefeld | eingabefeld | usw.
4 eingabefeld | eingabefeld | eingabefeld | eingabefeld | eingabefeld | usw.
5 eingabefeld | eingabefeld | eingabefeld | eingabefeld | eingabefeld | usw.
6 eingabefeld | eingabefeld | eingabefeld | eingabefeld | eingabefeld | usw.
7 usw...

also sind alle felder mit [] benannt zwecks array. so und hier mal der code für das AIRPORT1 feld (runter zus)

PHP:
if(isset($_POST['eintrag'])) 
{  

$port1 = $_POST['airport1']; 

for($i=0; $i<count($port1); $i++)  
{  

$port11 = $port1[$i]; 
 
 
$airid = 'SELECT airportID, airportID AS air FROM airports WHERE airportCode = \''.$port11.'\''; 
$erg = mysql_query($airid); 
while($a = mysql_fetch_object($erg)) 
{ 
 $eintrag = "INSERT INTO angebote_busineeclass  (abairportIDs1) 
 VALUES ('".$a->airportID."')"; 
  
 if(!mysql_query($eintrag)) 
 { 
  exit(mysql_error()); 
 } 
  else  
 { 
  echo '<strong><font color="#FF0000">Angebote erfolgreich gespeichert!<br></font></strong>'; 
 } 
  
 }
} 
}

hier trägt es auch einwandfrei die airportID ein..

aber wenn ich jetzt noch die anderen felder reinschreiben will klappt nix....den code hab ich leider net mehr aber es war dann für AIRPORT2 usw immer das selbe an der forschleife....und das beißt sich ;)

ich hoffe ihr verstreht was ich meine und wie das aufgebaut ist...;

da ist nix mit einfach id holen ud speichern ;) (zumindest net für mich)
 
Zurück