hmm w zasadzie to masz błąd w sztuce...
Kod
klienci(id,[b]Imie,Nazwisko[/b],Adres,miasto,etc.).
zlecenia(nr zlecenia, usluga, id_klienta, [b]nazwisko, imie[/b])
absolutnie nie jest Ci potrzebna duplikacja tych danych. Po prostu jeśli będziesz chciał wyciągnąć nazwisko klinta z bazy danych to wystarczy Ci proste zapytanie do dwóch tabel na podstawie wspólnej relacji:
SELECT z.nr zlecenia, z.usluga, z.id_klienta, k.Imie, k.Nazwisko
FROM zlecenia z, klienci k
WHERE k.id = z.id_klienta
czyli pola `imie` i `nazwisko` w tabeli `zlecenia` jest całkowicie niepotrzebne. Jest to powójne pisanie tego samego do bazy danych
Ale jeśli jesteś uparty i koniecznie chcesz aby po wybraniu opcji kombo wpisywało się nazwisko do formatki to możesz zrobić to tak:
1. Ściągasz listę klientów z bazy i przepisujesz ją do zmiennej java script:
<?php
foreach( $arrKlienci as $klient ){
$parts[] = "new Array('{$klient['id']}','{$klient['imie']}','{$klient['nazwisko']}')";
}
var arrKlients = new Array(".implode(", ", $parts)."); </script>";
?>
2. Zakładam, ze interesująca nas część Twojej formatki wygląda mniej więcej tak:
<select name="id" id="id" onchange="przypiszDoPol(this)"> <input type="text" value="" name="imie" id="imie"> <input type="text" value="" name="nazwisko" id="nazwisko">
3. następnie w samym templacie piszesz taki skrypt:
function przypiszDoPol(sel){
var idKlienta = sel.options[sel.selectedIndex];
for ( var i=0; i<arrKlients.length' i++){
if ( arrKlients[i][0] == idKlienta ){
document.getElementById('imie').value = arrKlients[i][1];
document.getElementById('nazwisko').value = arrKlients[i][2];
return
}
}
document.getElementById('imie').value = "";
document.getElementById('nazwisko').value = "";
}
</script>
oczywiście jest to dość niebezpieczne rozwiązanie, ponieważ przy wielkiej liczbie klientów skrypt może się wolno ładować lub w ogóle się nie załadować. W takich przypadkach lepiej używać ajax (a na ten temat już baardzo dużo na tym forum znajdziesz)