Avatar billede tekno20 Nybegynder
03. april 2011 - 20:07 Der er 9 kommentarer

javaschript, php radiobutton´s, mysql.. en samlet løsning

hej jeg er igang med en søge function til en database over fodbold kort.. bare en lille hobby ting..

jeg har alle kort i en mysql db, med en struktur der ser nogenlunde sådan her ud:

id, spiller, nummer, typpe, club,

jeg vil gerne lave en søge side, hvor man via radio buttons kan vælge om man vil søge i kortrækken efter spiller, typpe eller club.

altså og her skal der nok bruges noget java.. det hele skal afvikles fra samme php dokument. så når jeg clikker min "club" radiobutton søger den:

$result = mysql_query("SELECT DISTINCT club FROM `kort_db`")

her samler php $result i en array og smider dem i en dropdown list

og hvis jeg umidelbart bagefter clikker "typpe" radiobutton søger den:

$result = mysql_query("SELECT DISTINCT "typpe" FROM `kort_db`")

her samler php $result i en array og opdatere dropdown listen

der skal ikke være nogen form for submit knap det hele skal ske realtime eller "realtime like" feks. en php.self jeg ved det ikke, for det er her, jeg er gået lidt i stå..

håber der er nogle kloge hoveder der kan hjælpe mig lidt videre. måske er det en helt forkert indgangs vinkel til problemet, så alle foreslag er velkommen, så længe det er i et dokument og php, java, mysql, uden tilføgelses programmer..
Avatar billede sortsnak.dk Nybegynder
03. april 2011 - 20:23 #1
Realtime = AJAX

Javascript-funktion laver et kald til en php-side som laver et opslag i databasen, baseret på input fra javascript-funktion (dropdown input). Resultatet fra opslaget bliver sendt retur som XML/JSON til en javascript-funktion som udfylder dropdown2 med resultatet. Samme mønster gentages med dropdown2 og dropdown3.

Tag et kig her:
http://php-ajax-code.blogspot.com/2007/07/ajax-triple-dropdown-with-states-cities.html
Avatar billede tekno20 Nybegynder
03. april 2011 - 20:56 #2
ja den havde jeg også kigget på, men problemet er, at dette ikke er i et dokument og ikke med radio buttons, som første valg i min sql søgning

jeg skal måske lige tydeliggøre at det er vigtigt at alt foregår i samme dokument, da det er noget jeg inkludere i et andet php dokument "som en function eller tilvalg" til en existerende side

men god ide alligevel.. jeg vil bare helst ikke have 2 dropdowns på samme side det er noget med designet og brugervenlighed
Avatar billede sortsnak.dk Nybegynder
03. april 2011 - 21:04 #3
I så fald er det vel bare at lave et callback på php-siden, når en dropdownbox bliver "udfyldt"?

Pseudo-kode:

[code]
if ($club == '' && $type == '') {
  <select id="club" onchange="location.href='?club='+this.value;">
  <option value="Barcelona">Barcelona</option
  </select>
}

if ($club != '' && $type == '') {
  <select id="club" onchange="location.href='?club=<?php echo $club ?>&type='+this.value">
  <option value="Angriber">Angriber</option
  </select>
}

if ($club != '' && $type != '') {
  <select id="club" onchange="location.href='?club=<?php echo $club ?>&type=<?php echo $type ?>&player='+this.value">
  <option value="Messi">Messi</option
  </select>
}
[/code]

Der skal nok også tages højde for querystring-værdier fra "moder-siden", hvor søgefelterne bliver included.
Avatar billede sortsnak.dk Nybegynder
03. april 2011 - 21:05 #4
Åh gud... der blev jeg lige char-blocked :(

Håber det giver mening alligevel.
Avatar billede sortsnak.dk Nybegynder
03. april 2011 - 21:07 #5
if ($club == '' && $type == '') {
<select id="club" onchange="location.href='?club='+this.value;">
<option value="Barcelona">Barcelona</option
</select>
}

if ($club != '' && $type == '') {
<select id="type" onchange="location.href='?club=<?php echo $club ?>&type='+this.value">
<option value="Angriber">Angriber</option
</select>
}

if ($club != '' && $type != '') {
<select id="player" onchange="location.href='?club=<?php echo $club ?>&type=<?php echo $type ?>&player='+this.value">
<option value="Messi">Messi</option
</select>
}
Avatar billede tekno20 Nybegynder
03. april 2011 - 21:48 #6
ja men den er lidt for statisk, for jeg vil gerne hele tiden have mulighed for at gøre mit valg om, så jeg kan trykke på en anden radio button og få samme dropdown liste til at vise nye valgmuligheder..

altså en dropdown list og tre radio buttons

jeg ved ikke om dette giver nogen mening men det må kunnet lade sig gøre

dette er min kode indtil vidre


    <form name="form1">
    <input type="radio" name="searchby" label="club" onClick= "<?php echo "club"; $selektion="club"; ?>" > club
    <input type="radio" name="searchby" label="spiller" onClick= "<?php echo "player"; $selektion="player"; ?>" > spiller
    <input type="radio" name="searchby" label="typpe" onClick= "<?php echo "type"; $selektion="type"; ?>" > typpe
    </form>
 

<?php
include("con.php");
mysql_select_db("chl", $connect);


$result = mysql_query("SELECT DISTINCT $selektion FROM `card_list`")
or die(mysql_error()); 

echo "<SELECT name=item>";
while ($line = mysql_fetch_array($result))
{
foreach ($line as $value)
{
echo "<OPTION value='$value'";
}
echo ">$value</OPTION>";
}
mysql_close($connect);
echo "</SELECT>";

?>

//men den er ikke just brugbar :)
jeg mangler nogle binde led så den bliver dynamisk

og super mange tak for tilbagemeldingerne selvom jeg måske er lidt kræsen så hjælper det med andre øjne på sagen
Avatar billede sortsnak.dk Nybegynder
03. april 2011 - 21:54 #7
En mulighed kunne være at have 3 dropdown-bokse, men kun vise den dropdown-boks som er aktiveret via radiobutton. :)
Avatar billede tekno20 Nybegynder
03. april 2011 - 22:02 #8
ja det er ikke helt dumt altså lave en form for visible=false; indtil radio button er aktiv.. det kunne godt virke og så skulle mit

"mysql_query("SELECT DISTINCT $selektion FROM card_list")"

laves om til noget i retning af

"mysql_query("SELECT DISTINCT type,player,club FROM card_list")"

har jeg ret?
Avatar billede tekno20 Nybegynder
03. april 2011 - 22:03 #9
eller skulle der laves et query til hver gruppe
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester