Problem z funkcją / option selected

0

Witam
Pobieram dane klienta ($nadawca) za pomocą GET i potem chciałbym żeby ten klient był w poniższej funkcji widoczny jako "wybrany" (selected).
Wiem, że jeżeli w funkcji deklaruję $wybrany jako NULL to ten wybór się traci, ale jak w takim razie ten kod przerobić żeby zadziałał?

<?php
$nadawca = $_GET['nadawca'];


function nadawca_nazwa($wybrany = NULL)
{
global $connect;
$wynik='<option value=""></option>';
$query="SELECT id, klient_id FROM klienci";
$result=mysqli_query($connect, $query);

if($result)
{
while($dat=mysqli_fetch_assoc($result))
$wynik.='<option value="'.$dat['id'].'"'.(($dat['klient_id']==$wybrany)?' selected':'').'>'.$dat['klient_id'].'</option>';
}
return $wynik;
}
?>
0

zmień klient_id na id.

(($dat['id']==$wybrany)?' selected':'')
0

Tak też nie działa. Problem jest chyba w tym, że w funkcji nie ma nigdzie $nadawca.

1

Co zawiera zmienna $nadawca ? Sam to pisałeś czy gotowiec ?
Gdzie i jak wywołujesz funkcję nadawca_nazwa ?

0

Zmienna $nadawca zawiera 'klient_id' , a funkcję wywołuję tak:

<select name="nadawca" size="1">'.nadawca_nazwa().'</select> 
0

Sprawdź kod:

<?php
$nadawca = $_GET['nadawca'];

function nadawca_nazwa($wybrany = NULL)
{
global $connect;
$wynik='<option value=""></option>';
$query="SELECT id, klient_id FROM klienci";
$result=mysqli_query($connect, $query);

if($result)
{
while($dat=mysqli_fetch_assoc($result))
$wynik.='<option value="'.$dat['id'].'"'.(($dat['id']==$wybrany)?' selected':'').'>'.$dat['klient_id'].'</option>';
}
return $wynik;
}
?>
<select name="nadawca" size="1">'.nadawca_nazwa($_GET['nadawca']).'</select> 
0

Bardzo dziękuję. Działa, tylko zamiast id wstawiłem klient_id.

<option value="'.$dat['klient_id'].'"'.(($dat['klient_id']==$wybrany)?' selected':'').'>'.$dat['klient_id'].'</option>

1 użytkowników online, w tym zalogowanych: 0, gości: 1