Zoeken met dropdown werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bert Van den Brande

Bert Van den Brande

01/03/2013 21:19:46
Quote Anchor link
Onderstaande code gebruik ik om records te zoeken ->
Live voorbeeld staat op http://bert.sna-webo.be/scripts/a_lezen.php
Er staan voorlopig 2 auto's in de database, een audi en een bmw
Bij de dropdown selecteer hij automatisch Audi.
Maar als ik dan op verzenden klik zegt hij dat hij geen records heeft gevonden.
Wie kan me verder helpen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?php

/****************************************************
*Initialisatie
****************************************************/

 $_srv = $_SERVER['PHP_SELF'];
  
try{
    
    function
__autoload($className) {
    require_once "../klassen/$className.class.php";}

    
    include("../connections/pdo.inc.php");
    include("../php_lib/createSelect.inc.php");
    include("../php_lib/menu.inc.php");
    include("../php_lib/drop_down.inc.php");
    
    
/*******************************************

*
*    formulier behandeling
*
********************************************/


    if (! isset($_POST["submit"]))  // geen formulier
    {
    // toon formulier
        $_output= "<h1>Bekijken Auto('s)</h1><h2>Selecteer</h2>
<form  method='post' action='$_srv'>
  <p>
      <label for='Leverancier'>Leverancier</label>
    <input type='text' name='leverancier'>
    <label for='Code'>Code</label>
    <input type='text' name='code'>

  
      <label for='merk'>Merk</label>"
;

    $_output.= drop_down('merk', 't_merken', 'd_Merk', 'd_Merknaam', 0, $_row['MerkID']);
        
    $_output.="
    <br>
  
  
  </p>
  <p>
    <label for='Type'>Type</label>
    <input type='text' name='type'>
    <label for='Uitvoering'>Uitvoering</label>
    <input type='text' name='uitvoering'>
  </p>
  <p>
    <label for='Categorie'>Categorie</label>
    <input type='text' name='categorie'>
  </p>
  <p>
    <label for='Omschrijving'>Omschrijving</label>
  <input type='text' name='omschrijving'></textarea>
  </p>
  <p>
    <label for='Voorraad'>Voorraad</label>
    <input type='text' name='voorraad'>
  </p>
  <p>
    <label for='Prijs_ex'>Prijs exclusief</label>
    <input type='text' name='prijsinclusief'>
    
    <label for='BTW'>BTW</label>
    <input type='text' name='btw'>
    
    <label for='Prijs_ex'>Prijs inclusief</label>
    <input type='text' name='prijsinclusief'>
  </p>
  <p>

  
    <label for='Bouwjaar'>Bouwjaar</label>
    <input type='text' name='bouwjaar'>
  </p>
    <input name='submit' type='submit' value='verzenden'>
</form>"
;

    }


    else
    {
    // verwerk inhoud van het formulier    
        $_code =$_POST["code"];
        $_merk = $_POST["merk"];
        $_type = $_POST["type"];
        $_uitvoering = $_POST["uitvoering"];
        $_categorie = $_POST["categorie"];
        $_omschrijving = $_POST["omschrijving"];
        $_voorraad = $_POST["voorraad"];
        $_prijsexcl = $_POST["prijsexclusief"];
        $_btw = $_POST["btw"];
        $_prijsincl = $_POST["prijsinclusief"];
        $_leverancier = $_POST["leverancier"];
        $_bouwjaar = $_POST["bouwjaar"];
          
            
        $_output ="";    

        $_query = createSelect("v_autos",
        array($_code, $_merk, $_type, $_uitvoering,
        $_categorie, $_omschrijving, $_voorraad, $_prijsexcl, $_btw, $_prijsincl,$_leverancier, $_bouwjaar),
        array('levcodeauto', 'merk', 'type','uitvoering','categorie','omschrijving', 'voorraad', 'prijsexclusief','btw', 'prijsinclusief','leverancier', 'bouwjaar','foto'));
            
// query
        $_result = $_PDO -> query("$_query");

        if ($_result -> rowCount() > 0)
        {


            while ($_row = $_result -> fetch(PDO::        FETCH_ASSOC))
            {

                $_output.= "Code bij Leverancier: ".$_row['levcodeauto']."<br> Merk: ".$_row['merk']."<br><br>";
                $_output.= "Type: ".$_row['type']."&nbsp;&nbsp; <br>Uitvoering: ".$_row['uitvoering']."&nbsp;&nbsp; <br>Categorie: ".$_row['categorie']."<br><br>";
                $_output.= "Omschrijving : <br>".$_row['omschrijving']."<br><br>";
                $_output.= "Voorraad: ".$_row['voorraad']."&nbsp;&nbsp;<br><br>Prijs zonder BTW: €".$_row['prijsexclusief']."<br>";
                $_output.= "BTW : ".$_row['btw']."<br>Prijs met BTW: €".$_row['prijsinclusief']."<br><br>";
                $_output.= "Leverancier : ".$_row['leverancier']."<br><br>";
                $_output.= "Bouwjaar : ".$_row['bouwjaar']."<br><br>";
                $_output.= "Foto: <br><img src='".$_row['foto']."'><HR>";
                }
               }

               else
               {
                   $_output = "<br><br><br><br><br><br><h2>Geen records gevonden voor deze input</h2>";
               }

                
                $_output .="<br><a href='$_srv'>volgende</a>";
    }

    
    
/*********************************************
*
*    output
*
**********************************************/
    
     // Object instantieren

    $_smarty = new My_smarty();

// We kennen de variabelen toe
    $_smarty->assign('menuh',menu('A'));
    $_smarty->assign('menuv',menu(1));
    $_smarty->assign('inhoud', $_output);
// display it
    $_smarty->display('autolev.tpl');

}


catch (myExeption $e)
{

   $e->log("../logs/error_log.csv");
   echo $e->userMessage();
}
  

  
  


?>
 
PHP hulp

PHP hulp

18/12/2024 08:58:11
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/03/2013 21:30:24
Quote Anchor link
a. ik zou je query even echoën.
b. houd er rekening mee dat je een <select> met <option>s maakt en dat deze select afhankelijk van de gekozen waarde een getal van 1 t/m 10 terug zal geven
 
Bert Van den Brande

Bert Van den Brande

01/03/2013 21:36:13
Quote Anchor link
Als ik echo $_output= $_merk; dan geeft hij inderdaad 1 weer.
Hoe zorg ik ervoor dat hij toch Audi weergeeft?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/03/2013 21:58:37
Quote Anchor link
Door <select> zonder <option>'s te genereren. Je gebruikt Smarty 3?
 
Eddy E

Eddy E

01/03/2013 22:04:44
Quote Anchor link
Of een value="audi" in de <option> te zetten, in plaats van de huidige (zinloze) getallen. Dan krijg je wel "audi" terug.
Maar zoals Frank ook zegt: wat is je huidige query?

Daarnaast:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_result
= $_PDO -> query("$_query");
?>


Kan je beter zo doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_result
= $_PDO -> query($_query);
?>

Dus zonder haakjes.

Daarnaast een andere, offtopic, vraag: waarom heb jij na elke $ een _?
Dus $_output en niet gewoon $output?
 
Bert Van den Brande

Bert Van den Brande

01/03/2013 22:11:51
Quote Anchor link
Ik gebruik deze functie om een drop_down te maken (heb ik niet zelf gemaakt)
Ik gebruik smarty
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

function drop_down($_name, $_table, $_number, $_mnemonic, $_start = 0, $_select = 0)
{

    global $_PDO;

$_output = "<select name='$_name'>";

     $_result = $_PDO -> query("SELECT $_number, $_mnemonic  FROM $_table");

     if ($_result -> rowCount() == 0)
       {

        throw new PDOException("$_table --> geen records");
       }

      
    while ($_row = $_result -> fetch(PDO::FETCH_ASSOC))
      {

        if($_row[$_number] >= $_start)
         {

          $_output.="<option value='".$_row[$_number]."'";
          if ($_row[$_number] == $_select)
          {

              $_output.=" selected ";
          }

          $_output.=">".$_row[$_mnemonic]."</option>\n";
         }  
       }

      
    $_output.="</select>";    
    
    return $_output;
    
}


?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/03/2013 22:24:54
Quote Anchor link
geef dezelfde waarde op voor $_number en $_mnemonic. dan doet ie het waarschijnlijk wel.
 
Bert Van den Brande

Bert Van den Brande

01/03/2013 22:29:29
Quote Anchor link
idd dan doet hij het maar dan heb ik nog een ander vraagje
op http://bert.sna-webo.be/scripts/a_lezen.php zie je dat er automatisch Audi komt te staan in Merk
Hoe kan ik er in de functie of op een andere manier voor zorgen dat het selectievakje standaard leeg is?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/03/2013 22:53:47
Quote Anchor link
Met een dropdown kan dat niet. Je kunt hooguit een optie toevoegen als "Kies merk ..." die je dan standaard selecteert. in je php-code kun je dan afvangen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($_POST['naam_van_mijn_dropdown'] == 'Kies merk ...') {
   echo 'U heeft geen automerk gekozen';
}
else {
  // vertoon hier de auto's van het gekozen merk
}
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.