Mam kolejny problem, chcę wyciągać kolejno wartości produktów z bazy danych i do każdy z osobna ma obsługiwać ajax. Czyli wszystkie ceny maja aktualizować się bez odświeżania.
To mój plik gdzie wywołuje formularze dla każdego produktu
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(function() {
$('#userdelete').on('submit', function(event) {
event.preventDefault();
$.ajax({
url: "formularz3.php",
method: "POST",
data: $(this).serialize()
})
.done(function(data, textStatus, jqXHR) {
var zm = data.idProduktu;
$('#message'+zm).html(data.message);
})
.fail(function(jqXHR, textStatus, errorThrown) {
$('#message'+zm).html(jqXHR.responseJSON.message);
});
});
});
</script>
</head>
<body>
<?php
require_once 'connectKlasa.php';
$con = new Connect();
$connect = new mysqli($con->host, $con->db_user, $con->db_password, $con->db_name);
$down = $connect->query("SELECT * FROM shop WHERE liczbaZdj ='2'");
while($row = $down->fetch_assoc()){
echo '<div id="message'. $row['idProduktu'].'">'. $row['cena'].'</div> <form action="POST" id="changePrice">
<input type="text" name="cena">
<input type="hidden" name="idProduktu" value="'. $row['idProduktu'].'">
<input type="submit">
</form><br><br>';
}
?>
</body>
</html>
Wysyłam id produktu oraz nową cenę
W drugim pliku:
<?php
header("Content-Type: application/json;charset=utf-8");
$cena = $_POST['cena'];
$idProduktu = $_POST['idProduktu'];
require_once 'connect.php';
$con = new Connect();
$connect = new mysqli($con->host, $con->db_user, $con->db_password, $con->db_name);
$connect->query("UPDATE shop SET cena='$cena' WHERE idProduktu='$idProduktu'");
'idProduktu' => $idProduktu
]);
} else {
'idProduktu' => $idProduktu
]);
}
Aktualizuje cenę w bazie i chce zwrócić nowe ceny, problem w tym że pierwszy rekord działa jak należy a następne zwracają mi dane w adresie i tak jakby nie były odbierane przez drugi plik.
Wydaje mi się że muszę przekazać idProduktu na początku skryptu z pierwszego pliku i każdy formularz nazwać changePrice'.$idProduktu żeby skrypt wiedział do którego formularza się odwołać.
Jak to zrobić? Uruchamiać skrypt on clickiem w tym wypadku w ogóle jest taka możliwość? Pomożecie?