Przesyłanie warunku do polecenia sql po przez pole select,

Odpowiedz Nowy wątek
2019-10-28 22:58
0

Witam, poszukuję rozwiązania na moje widzi mi się...
Mianowicie chce, aby użytkownikowi po wyborze w polu select, widział poniżej uzupełnione odpowiednie pola z danego wiersza z tabeli.
Każdy wiersz ma klucz podstawowy - jest to nazwa miesiąca,.
Podrzucam jak to wygląda wizualnie
title

    $ret=mysqli_query($con,"update koszt set
    biuro='$biuro',
    ruch_tel='$ruch_tel',
    bus='$bus',
    debesis='$debesis',
    wynagrodzenia='$wynagrodzenia',
    zus='$zus'
    where data='tutaj musi wysyłać  wartosc wybrana w selecie'");

Tutaj również musi wysyłać tą wartość, aby dane na stronie odpowiednio się wyświetlały

   <?php $rt=mysqli_query($con,"select * from koszt where data='Październik'");
              while($rw=mysqli_fetch_array($rt))
              { ?>  

a tutaj sam select

  <?php
                                                $zapytanie = "SELECT data FROM koszt";
                                                $wynik = $con->query($zapytanie);

                                                if ($wynik->num_rows > 0) 
                                                {

                                   echo "<select >";

                                         while($row = $wynik->fetch_assoc())
                                         {
                                echo "<option value=\"".$row['data']."\">" . $row['data'] . "</option>";

                                        }
                                   echo "</select>";

                                                } 
                                                else 
                                                {
                                               echo "0 results";
                                                }
                                                ?>

Pozostało 580 znaków

2019-10-28 23:09
0

Poczytaj sobie o podstawach formularzy. Wtedy zobaczysz, ze czegoś Ci w select brakuje. Jak to coś dodasz, to po wysłaniu formularza będziesz mógł pobrać wysłaną wartość.

EDIT: U Ciebie PK w tabelce w bazie jest stringiem (nazwa miesiąca)???

edytowany 1x, ostatnio: serek, 2019-10-28 23:10
Pokaż pozostałe 5 komentarzy
@serek: nie radź mi, ja wiem czego się używa i mówię, że nie zawsze jest intem i robi się to celowo ;) - mr_jaro 2019-10-28 23:22
@mr_jaro: zgadza się, nie zawsze jest intem. Ale w większości przypadków int wystarczy. Ale za cholerę nie powinien to być zwykły string :P - serek 2019-10-28 23:23
@mr_jaro: ta rada nie była do Ciebie^^ - serek 2019-10-28 23:24
Taka tylko uwaga, klucz podstawowy, unikalna nazwa. A jak rozwiążesz ten problem w skali roku? Moim zdaniem w 2020 roku październik też może być. - leonpro778 2019-10-29 09:28
@leonpro778: dość cenna uwaga, pod tym kątem tego nie obmyśliłem - oblako1223 2019-10-29 09:33

Pozostało 580 znaków

2019-10-28 23:12
0
serek napisał(a):

Poczytaj sobie o podstawach formularzy. Wtedy zobaczysz, ze czegoś Ci w select brakuje. Jak to coś dodasz, to po wysłaniu formularza będziesz mógł pobrać wysłaną wartość.

Chyba, źle mnie rozumiesz to ma się na tej stronie z automatu uzupełniać, a nie przechodzić do jakiejś podstrony coś na zasadzie onchange

Pozostało 580 znaków

2019-10-28 23:13
1
Maksymilian Rękawek napisał(a):
serek napisał(a):

Poczytaj sobie o podstawach formularzy. Wtedy zobaczysz, ze czegoś Ci w select brakuje. Jak to coś dodasz, to po wysłaniu formularza będziesz mógł pobrać wysłaną wartość.

Chyba, źle mnie rozumiesz to ma się na tej stronie z automatu uzupełniać, a nie przechodzić do jakiejś podstrony coś na zasadzie onchange

No to pisz dokładniej o co Ci chodzi, bo inaczej trzeba zgadywać.

Poczytaj sobie o ajax.

Pozostało 580 znaków

2019-10-28 23:55
0
serek napisał(a):
Maksymilian Rękawek napisał(a):
serek napisał(a):

Poczytaj sobie o podstawach formularzy. Wtedy zobaczysz, ze czegoś Ci w select brakuje. Jak to coś dodasz, to po wysłaniu formularza będziesz mógł pobrać wysłaną wartość.

Chyba, źle mnie rozumiesz to ma się na tej stronie z automatu uzupełniać, a nie przechodzić do jakiejś podstrony coś na zasadzie onchange

No to pisz dokładniej o co Ci chodzi, bo inaczej trzeba zgadywać.

Poczytaj sobie o ajax.

Dodałem coś takiego

 <script>
    function showUser(str) {
        if (str == "") {
            document.getElementById("txtHint").innerHTML = "";
            return;
        } else { 
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
// getuser.php is seprate php file. q is parameter 
            xmlhttp.open("GET","getuser.php?q="+str,true);
            xmlhttp.send();
        }
    }
    </script>
                            <?php
                                                $zapytanie = "SELECT data FROM koszt";
                                                $wynik = $con->query($zapytanie);

                                                if ($wynik->num_rows > 0) 
                                                {

                                   echo "<select onchange=\"showUser(this.value)\" >";

                                         while($row = $wynik->fetch_assoc())
                                         {
                                echo "<option value=\"".$row['data']."\">" . $row['data'] . "</option>";

                                        }
                                   echo "</select>";

                                                } 
                                                else 
                                                {
                                               echo "0 results";
                                                }

                                                $q = $_GET['q'];
                                                ?>

                                            </div>
                                        </div>
                                    </div></center>
                                </div>

                                <div class="panel-body">                                                                        
            <?php $rt=mysqli_query($con,"select * from koszt where data='$q'");
              while($rw=mysqli_fetch_array($rt))
              { ?>  

Ale nie widzi tego q :/

Pozostało 580 znaków

2019-10-29 16:47
0

Co znaczy, że nie widzi?

Komplikujesz sobie życie. Użyj ajaxa w jQuery.

edytowany 1x, ostatnio: serek, 2019-10-29 21:07
nie moge nigdzie znalezc uzycia ajaxa w tym przypadku :/ - oblako1223 2019-10-29 21:57

Pozostało 580 znaków

2019-10-29 22:03
2019-10-30 10:09
0

Moim zdaniem źle się trochę do tego zabierasz. Powinieneś zrobić mniej więcej coś takiego:
plik z widokiem (z polem select z metodą onchange)
plik getData.php?date=jakas_data
no i JS (wcale nie musi być jQuery)

Taki mały przykładzik (pisane z pamięci):

plik view.php:

<select name="selectField" onchange="changeSth(this.value)">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
</select>
<hr />

<div id="responseData">
    Paliwo: <input type="text" id="fuel" value="0">
</div>

<script>
    function changeSth(value)
    {
        // get response from ajax.php
        var request = new XMLHttpRequest();
        request.open('GET', 'ajax.php?someData=' + value, true);

        request.onload = function () {
            if (this.status >= 200 && this.status < 400) {
                document.getElementById('fuel').value = this.response;
            }
        }
        request.onerror = function () {
            recivedMessage = 'Error script';
        }

        request.send();
    }
</script>

plik ajax.php

<?php
    $response = $_GET['someData'] ?? 0;
    echo $response*3;
Znaczy on ma mi dawać nie tą wartość do input tylko do zapytania sql - oblako1223 2019-10-30 12:40

Pozostało 580 znaków

2019-10-30 13:45
0

Końcowo zrobiłem tak, bo za nic nie potrafiłem zrozumieć jak przesłać wartość wyboru do jakiejś zmiennej która mógłbym wpisać do warunku w poleceniu sql ...


<?php
                                                $zapytanie = "SELECT data FROM koszt";
                                                $wynik = $con->query($zapytanie);

                                                if ($wynik->num_rows > 0) 
                                                {

                                   echo "<select onchange=\"location = this.options[this.selectedIndex].value;\">";

                                         while($row = $wynik->fetch_assoc())
                                         {
                                echo "<option value=\"koszta.php?id=<?php echo $row['data'];?>"\">" . $row['data'] . "</option>";

                                        }
                                   echo "</select>";

                                                } 
                                                else 
                                                {
                                               echo "0 results";
                                                }
                                                ?>

Tylko pomóżcie mi z wierszem 12, bo tam jest to źle napisane z tymi "" i /

edytowany 2x, ostatnio: oblako1223, 2019-10-30 13:46

Pozostało 580 znaków

2019-10-30 14:04
0

No ale co za problem wykonać zapytanie SQL w pliku ajax.php wysyłając przed tym jakieś parametry. Nadal nie rozumiem w czym problem.

Teraz oglądam ten kod na komórce także mało jest czytelny. Później zerknę

Dobra, może zaczniemy od początku. Ten Twój formularz. Co ma się dziać po zmianie miesiąca (wykonywana jest przy onchange)?

edytowany 1x, ostatnio: leonpro778, 2019-10-30 14:29

Pozostało 580 znaków

2019-10-30 14:29
1

pomóżcie mi z wierszem 12

Tak technicznie rzecz biorąc, to 12 wiersz z Twojego listingu ma postać 12 {. Naprawdę, mógłbyś wykazać minimum szacunku względem osób, które prosisz o pomoc i ten kod jakoś sformatować...


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
edytowany 1x, ostatnio: cerrato, 2019-10-30 15:17
wybacz, racja złe się to czyta - oblako1223 2019-10-30 15:14

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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