Kun haen SQL- kyselyllä taulusta tietoa, ja tulostan ne näytölle html- taulukkona, niin miten saan mahdolliset muutokset taulukossa, esim. kappalemäärät jne. syötettyä takaisin samaan tauluun ?
Ilmeisesti tarkoitat lähettämättä samaa sivua uudelleen?
Jos et halua lähettää sivua uudestaan, on mielestäni luontevin tapa käyttää ajaxia.
Siitä vaaan opettelemaan.
https://www.ohjelmointiputka.net/oppaat/opas.
B_R_H kirjoitti:
Ilmeisesti tarkoitat lähettämättä samaa sivua uudelleen?
Jos et halua lähettää sivua uudestaan, on mielestäni luontevin tapa käyttää ajaxia.Siitä vaaan opettelemaan.
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=ajax
Miten tuo onnistuisi lähettämällä sama sivu uudelleen ?
Eipä kai siinä oikein muita vaihtoehtoja siiten ole kuin rakentaa sivu uudelleen.
Tässä on esimerkki, josta on ehkä apua. Taulun nimi on tuotteet
, ja siinä ovat kentät id
, nimi
ja hinta
. Ideana on tehdä HTML-taulukosta lomake, jonka tiedot pystyy tallentamaan takaisin tietokantaan. Lomakkeessa muuttujat nimet[id]
ja hinnat[id]
vastaavat tuotetta, jonka numero on id
.
<?php // lista.php mysql_connect("localhost", "", ""); mysql_select_db("testit"); $lista = mysql_query("SELECT id, nimi, hinta FROM tuotteet"); echo "<form action=\"muokkaus.php\" method=\"post\">"; echo "<table border>"; echo "<tr><th>nimi</th><th>hinta</th></tr>"; for ($i = 0; $i < mysql_num_rows($lista); $i++) { $id = mysql_result($lista, $i, 0); $nimi = mysql_result($lista, $i, 1); $nimi = htmlspecialchars($nimi); $hinta = mysql_result($lista, $i, 2); $hinta = htmlspecialchars($hinta); echo "<tr>"; echo "<td><input type=\"text\" name=\"nimet[$id]\" value=\"$nimi\"></td>"; echo "<td><input type=\"text\" name=\"hinnat[$id]\" value=\"$hinta\"></td>"; echo "</tr>"; } echo "</table>"; echo "<br><input type=\"submit\" value=\"Tallenna\">"; echo "</form>"; ?>
<?php // muokkaus.php mysql_connect("localhost", "", ""); mysql_select_db("testit"); $nimet = $_POST["nimet"]; $hinnat = $_POST["hinnat"]; foreach ($nimet as $id => $nimi) { $id = intval($id); $nimi = mysql_real_escape_string($nimi); mysql_query("UPDATE tuotteet SET nimi = '$nimi' WHERE id = $id"); } foreach ($hinnat as $id => $hinta) { $id = intval($id); $hinta = mysql_real_escape_string($hinta); mysql_query("UPDATE tuotteet SET hinta = '$hinta' WHERE id = $id"); } header("Location: lista.php"); ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.