Avatar billede t-johansen Juniormester
24. februar 2016 - 10:09 Der er 7 kommentarer og
1 løsning

php søge funktion

Sidder og modificerer en søgefunktion der virker.

Nu skal jeg tilføje endnu en selectbox og denne kan jeg bare ikke få til at virke.


Dette virker:


<div class="row">
  <div class="cellheader">Sælger</div>
  <div>
  <select class="cell" size="1" name="saelger" value="<?=$ssaelger;?>">
  <option value="" >Alle</option>
    <?php
    $userlist = mysql_query("SELECT * FROM `users` WHERE `firma_id` = $firmaid ORDER BY display_name ASC",$db);
    while($row = mysql_fetch_object($userlist))
    {
    echo '<option value="'.$row->username.'".(($row->username==$ssaelger)?'selected="selected"':"").'>'.$row->display_name.'</option>';       
    }     
    ?>
  </select>
  </div>
</div>

<?
if (!empty($ssaelger)) {$ssaelger2 = "AND `saelger` = '$ssaelger'";} else { $ssaelger2 = "";}                

$soglev = mysql_query("SELECT * FROM `vognliste` WHERE `firma` = $firmaid $ssaelger2 ORDER BY `levdato` ",$db);



while($row = mysql_fetch_object($soglev))
{
}
?>






Men hvis jeg så tilføjer en ekstra selectbox så bliver den ignoreret. Dvs den bruger hverken det valgte som kritere eller sætter den valgte i "selected" status.






<div class="row">
  <div class="cellheader">Sælger</div>
  <div>
  <select class="cell" size="1" name="saelger" value="<?=$ssaelger;?>">
  <option value="" >Alle</option>
    <?php
    $userlist = mysql_query("SELECT * FROM `users` WHERE `firma_id` = $firmaid ORDER BY display_name ASC",$db);
    while($row = mysql_fetch_object($userlist))
    {
    echo '<option value="'.$row->username.'".(($row->username==$ssaelger)?'selected="selected"':"").'>'.$row->display_name.'</option>';       
    }     
    ?>
  </select>
  </div>
</div> 
<div class="row">
  <div class="cellheader">Status</div>
  <div class="">
  <select class="cell" size="1" name="status" value="<?=$sstatus;?>">
    <option class="" value="" >Alle</option>
    <option class="" value="0" <? if($sstatus == "0") {echo "selected";} ?>>Afventer</option>
    <option class="" value="1" <? if($sstatus == "1") {echo "selected";} ?>>Problem</option>
    <option class="" value="3" <? if($sstatus == "3") {echo "selected";} ?>>Indregistreret</option>
    <option class="" value="4" <? if($sstatus == "4") {echo "selected";} ?>>Faktureret</option>
    <option class="" value="5" <? if($sstatus == "5") {echo "selected";} ?>>Annulleret</option>
    <option class="" value="6" <? if($sstatus == "6") {echo "selected";} ?>>Udført (klarg.)</option>
  </select>
  </div>           
</div>

<?
if (!empty($ssaelger)) {$ssaelger2 = "AND `saelger` = '$ssaelger'";} else { $ssaelger2 = "";}    
if (!empty($ssaelger)) {$sstatus2 = "AND `status` = '$sstatus'";} else { $sstatus2 = "";}           

$soglev = mysql_query("SELECT * FROM `vognliste` WHERE `firma` = $firmaid $ssaelger2 $sstatus2 ORDER BY `levdato` ",$db);



while($row = mysql_fetch_object($soglev))
{
}
?>



tror jeg har stirret mig blind på problemet.
Avatar billede Rune1983 Ekspert
24. februar 2016 - 11:24 #1
Ikke sikker på hvad det helt præcis er du ønsker. Det er lidt svært at tyde. Kan du beskrive det på en anden måde?

Eventuelt lav en kort klade i kun HTML og så sæt PHP kode ind bagefter. Måske det hjælper til at finde fejlen og at du ikke stirrer dig blind.

<select class="cell" size="1" name="status" value="<?=$sstatus;?>">
Kan se du bruger Value i SELECT tag. Det mener jeg ikke er gyldig. Values ligger i options for select.
24. februar 2016 - 11:27 #2
Måske stirrer jeg mig blind, men jeg kan ikke se hvor du definerer $status.
Avatar billede t-johansen Juniormester
24. februar 2016 - 11:44 #3
Skal prøve at forklare det på en anden måde.


Første eksempel, som virker, her kan man vælge en sælger (navnene er populated fra en sql.)

Når/hvis man vælger en sælger, blive denne kriterie brugt i søge queryen.
og selectboxen med sælgernavnet indeholder nu sælgernavnet også efter den har søgt/hentet resultatet.

Dvs. det virker.


I eksempel 2, vil jeg tilføje endnu en selectbox med status valgmuligheder.

Her er der ikke behov for at hente selectbox mulighederne fra sql så de er statiske.
Ellers har jeg brugt samme opsætningsmetode.

Men når jeg vælger en status, så iberegner den ikke kriterien og den registerer ikke valget når den søger/henter resultatet. dvs selectboxen nulstilles.




Men jeg kan ikke gennemskue hvad jeg har lavet forskel på sælger kriteriet og på status kriteriet.
Avatar billede t-johansen Juniormester
24. februar 2016 - 11:45 #4
der er ikke en $status, der er en $sstatus og en $sstatus2
Avatar billede t-johansen Juniormester
24. februar 2016 - 11:52 #5
har fundet fejlen.


Fejlen lå uden for "synsvinkel" længere oppe i min kode.

der manglede en:


$sstatus  = $_GET["status"];
Avatar billede t-johansen Juniormester
24. februar 2016 - 11:54 #6
hvis i vil, så vil jeg stadig gerne dele pointene mellem jer da jeg takker for forsøget, og fejlen jo var "uden for synsvinkel" for jer.
24. februar 2016 - 17:53 #7
Nej, fejlen var, så at sige, indenfor min synsvinkel, idet jeg så du i den kode der ikke virkede brugte en variabel $status, men at du ikke definerede den variabel.  Men det blev løst.
Avatar billede t-johansen Juniormester
25. februar 2016 - 10:50 #8
Det har du ret i.
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

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