Witam
Od rana męczę się z dość prostą rzeczą, mianowicie pobieram dane z MySQL i w zależności od opcji z formularza, ma się wyświetlać odpowiednia tabelka.
Cały kod na którym się wzorowałem (i działał) to:
<script type="text/javascript">
function podmiana(co) {
var ile = document.getElementById("wybor").options.length;
for(var i=1; i<=ile; i++) {
var ktora = "w"+i;
if(ktora == co) {
document.getElementById(ktora).style.display = "block";
}
else if(ktora != co) {
document.getElementById(ktora).style.display = "none";
}
}
}
</script>
<body>
<form id="formularz" action="test.php">
<select name="wybor" id="wybor" onChange="podmiana(this.value);">
<option value="w1">Treść nr 1</option>
<option value="w2">Treść nr 2</option>
<option value="w3">Treść nr 3</option>
<option value="w4">Treść nr 4</option>
</select>
</form>
<div id="w1">
Tekst 1
</div>
<div id="w2">
Tekst 2
</div>
<div id="w3">
Tekst 3
</div>
<div id="w4">
Tekst 4
</div>
</body>
oraz prosty css
#w1 {
display: block;
}
#w2,#w3,#w4 {
display: none;
}
Po zmianie w formularzu option, zmienia się tekst w DIV.
Analogicznie do tego przykładu, podmieniłem kilka elementów:
<script type="text/javascript">
function podmiana(co) {
var ile = document.getElementById("wybor").options.length;
for(var i=1; i<=ile; i++) {
var ktora = "w"+i;
if(ktora == co) {
document.getElementById(ktora).style.display = "block";
}
else if(ktora != co) {
document.getElementById(ktora).style.display = "none";
}
}
}
</script>
<body>
<?php
$polacz = mysqli_connect(" XXXX ")or die ("Błąd połączenia: " .mysqli_connect_error());
mysqli_query($polacz,"set names 'utf8'");
$result = mysqli_query($polacz, "select * from wiz_standard_cyfra order by naklad;") or die("Bład zapytania");
?>
<form id="formularz" action="test.php">
<select name="wybor" id="wybor" onChange="podmiana(this.value);">
<option value="w1">Treść nr 1</option>
<option value="w2">Treść nr 2</option>
<option value="w3">Treść nr 3</option>
<option value="w4">Treść nr 4</option>
</select>
</form>
<table class="tabelka">
<tr>
<th>Nakład </th>
<th class="srodek">Cena netto/<strong>brutto</strong></th>
</tr>
<div id="w1">
<?php
while ($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" .$row["naklad"] . "</td> <td class='srodek'><center>" .$row["cena_netto"] . " / <strong>" .$row["cena_netto"]*1.23 . "</center></strong></td>";
echo "</tr>";
}
?>
</div>
<div id="w2">
<?php
while ($row2 = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" .$row2["naklad"] . "</td> <td class='srodek'><center>" .$row2["cena_netto_j"] . " / <strong>" .$row2["cena_netto_j"]*1.23 . "</center></strong></td>";
echo "</tr>";
}
?></div>
<div id="w3">
<?php
while ($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" .$row3["naklad"] . "</td> <td class='srodek'><center>" .$row3["cena_netto_czb"] . " / <strong>" .$row3["cena_netto_czb"]*1.23 . "</center></strong></td>";
echo "</tr>";
}
?>
</div>
<div id="w4">
<?php
while ($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" .$row4["naklad"] . "</td> <td class='srodek'><center>" .$row4["cena_netto_czb_j"] . " / <strong>" .$row4["cena_netto_czb_j"]*1.23 . "</center></strong></td>";
echo "</tr>";
}
?>
</div>
</table >
</body>
Jak widzicie, doszło połączenie do MySQL oraz w każdym DIV zamiast prostego tekstu, jest wyświetlanie danych z bazy w formie tabelki.
Działa tylko opcja nr1, a kiedy zmieniam na 2,3,4 to pojawia się puste pole.
Próbowałem dodać przycisk input type=‘sumbit’, ale po przyciśnięciu ładowało tylko nr. 1, niezależnie który przycisk wybrałem.
Na ‘sztywno’ wyświetla mi wszystkie tabelki poprawnie, ale jednak nie chce wywalać czterech tabelek na stronę, tylko jedną którą podmienię kiedy będę chciał.
Gdzie popełniłem błąd? Zaznaczam że ostatnio kontakt z php+mysql miałem jakieś półtorej roku temu, więc sporo uleciało z głowy
Dzięki
Łukasz