[PHP]SprintF + Option/Select vakjes probleem

Pagina: 1
Acties:

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
Et is vrij vaag, maar ik zal het probleem proberen uit te leggen.

Ik heb een tabel, en daar staan gegevens al ingevoerd.
Nu ben ik een pagina aan het maken waar je die gegevens weer kunt veranderen. Het lukt me uitstekend om de waardes van de database in een INPUT te krijgen. Maar met een SELECT/Option loopt dit helemaal verkeerd.

Ik zal de code even hierneer zetten om te laten zien wat ik nu heb.
code:
1
<? if (%s == "Netherlands") { ?><select name="country"><option value="%s">%s</option><option value="Other">Other country</option></select><? } ?><?  elseif (%s == "Other Country") { ?><select name="country"><option value="%s">%s</option><option value="Netherlands">Netherlands</option></select><? } ?>

Ook heb ik geprobeerd de elseif te veranderen in if zoals hieronder:
code:
1
<? if (%s == "Netherlands") { ?><select name="country"><option value="%s">%s</option><option value="Other">Other country</option></select><? } ?><? if (%s == "Other Country") { ?><select name="country"><option value="%s">%s</option><option value="Netherlands">Netherlands</option></select><? } ?>

Je ziet dat er te kiezen is uit "Netherlands" en "Other Country"
Maar via de SprintF moet ik nu wel 6x $country1 ophalen. Niet dat dat zo'n probleem is, maar dadelijk krijg ik een keuze vakje van wel 7 mogelijkheden, en dan krijg ik zoveel code. Bovendien werkt bovenstaande niet eens, want hij laat nu 2x m'n selectievakje zien.

Je snapt dat bij de ene gebruiker "Netherlands" staat en bij de andere "Other Country". Hij moet automatisch op 1 van die waarde staan.

Nu ik zojuist nog wat geprobeert heb:
<select name="country" value="%s"><option value="Netherlands">Netherlands</option><option value="Other">Other country</option></select>

Laat hij maar 1x m'n selectievakje zien :), maar hij gaat niet automatisch op de goede waarde staan.

Alle %s in dit bericht = Netherlands OF Other country.

De vraag is, hoe gaat hij automatisch op de goede waarde staan?

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
ik zie dat het probleem een beetje terug slaat op
[topic=188451/1/25]

volgens mij heeft niemand zin, om dit allemaal te lezen

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
Op vrijdag 20 juli 2001 15:43 schreef BiOCHiP het volgende:
Zo:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
echo "<select name=\"Category\" size=\"1\">";
mysql_connect "$DBHost","$DBUser","$DBPass");
$result=mysql("$DBName","SELECT * FROM category ORDER BY Category");
while ($row = mysql_fetch_row($result)) {
echo "<option value=\"$row[0]\"";
if ($row[0] == $Category)
  echo " selected";
echo "> $row[1] </option>";
}echo "</select><p>";
?>
En nu nog binnen een SPrintF ?

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$query = "SELECT DISTINCT $reeks.ploeg1 FROM $reeks ORDER by $reeks.ploeg1";
$resultaat = mysql_query($query);
while ($ploegen = mysql_fetch_array($resultaat))
{
print("<OPTION VALUE=\"$ploegen[0]\"");
if ($ploegen[0]==$row[ploeg1]) print (" SELECTED");
print(">$ploegen[0]</OPTION>\n");
}
?>

vindt ik ineens. Maar ik snap em niet.
Ik zal de waarde eens zo maken dat hij aan mijn tabel goed staat.
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$query = "SELECT en_hele_hoop_en_ook_country FROM csleden ORDER where nick='$nickophaal'";
$result = mysql_query ( $query );
while ($ploegen = mysql_fetch_array($result))
{
print("<OPTION VALUE=\"$ploegen[0]\"");
if ($ploegen[0]==$row[ploeg1]) print (" SELECTED");
print(">$ploegen[0]</OPTION>\n");
}
?>

en nu? vanaf de while weet ik niet meer wat ik moet invullen.

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
ik wil em toch als $buffer . hebben.
Dus directe echo's... nee dank je

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Beetje vaag vind ik het allemaal, maar ik begrijp dat dit wel werkt:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$query = "SELECT en_hele_hoop_en_ook_country FROM csleden ORDER where nick='$nickophaal'";
$result = mysql_query ( $query );
while ($ploegen = mysql_fetch_array($result))
{
print("<OPTION VALUE=\"$ploegen[0]\"");
if ($ploegen[0]==$row[ploeg1]) print (" SELECTED");
print(">$ploegen[0]</OPTION>\n");
}
?>

alleen wil je het niet direkt afdrukken...

Dus:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$query = "SELECT en_hele_hoop_en_ook_country FROM csleden ORDER where nick='$nickophaal'";
$result = mysql_query ( $query );
while ($ploegen = mysql_fetch_array($result))
{
$buffer = "<OPTION VALUE=\"$ploegen[0]\"";
if ($ploegen[0]==$row[ploeg1]) $buffer .= " SELECTED";
$buffer .= ">$ploegen[0]</OPTION>\n";

// en dan
echo $buffer;
}
?>

Of begrijp ik het verkeerd?

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
Kijk... ik werk met SPrintF... dus ik kan zeggen
%s.

Maar waarom kan ik niet zeggen bijvoorbeeld:
selected="%s"

Ik bedoel. %s is veranderlijk. Want de waarde die hij uit de database haalt, die moet hij instellen als selected.

Dat is toch niet zo moeilijk? Maar waarom werkt het dan niet? Bestaan selected niet bij een <Option> ?

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
eew... ik heb nu 3x selected="%s" gedaan. Bij Option, en 2x bij Select. en het werkt.

Bij welke hij nou nodig is, ga ik later op deze dag uitvogelen... Misschien dat iemand mij dat antwoord nog kan geven, want zo lijkt het alsof ik dit topic zelf heb opgelost.

Tnx... Cheater

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Die %s is een formaat en kan alleen zo gebruikt worden:
PHP:
1
2
3
4
<?
$string = "wereld";
printf("Hallo %s",$string);
?>

Om die dus in een printf (of sprintf) te gebruiken krijg je zoiets:
PHP:
1
2
3
4
<?
$country = "Nederland";
printf("<option value='%s'>",$country);
?>

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
doh... da wist ik niet.
Het probleem = Hij moet op selected staan, op de waarde die hij uit de database haalt... het probleem is trouwens alsnog niet opgelost, ondanks mijn vorige post.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
3
4
5
<SELECT NAME="country">
  <OPTION <?= ($country=="Nederland" ? "SELECTED" : "") ?>>Nederland</OPTION>
  <OPTION <?= ($country=="Belgie" ? "SELECTED" : "") ?>>Belgie</OPTION>
  <OPTION <?= ($country=="Verweggistan" ? "SELECTED" : "") ?>>Verweggistan</OPTION>
</SELECT>

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 00:09
ik vind dit niet leuk worden... :(

Dit werkt ook al niet... :( :( :(
Pagina: 1