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

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";
                                                }
                                                ?>
                                              
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)???

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

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.

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 :/

0

Co znaczy, że nie widzi?

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

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;
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 /

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)?

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ć...

0

Rozwiązałem to w taki sposób, czyli jednak na drugi plik i potem wywołuje to:

 where data='".$_GET['data']."'
<?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?data=".$row['data']."\">" . $row['data'] . "</option>";
                }

	         echo "</select>";
           } 
         else 
        {
      		 echo "0 results";
		}
 ?>

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