PHP:
<?php
require "../konekcija/konekcija.php";
require "../modeli/zadatak.php";
require "../modeli/kategorija.php";
session_start();
if (!isset($_SESSION["korisnik"])) {
header('Location: index.php');
exit();
}
if (isset($_COOKIE["korisnik"])) {
$korisnik = $_COOKIE["korisnik"];
}
if (isset($_POST["button2"])) {
$zadatak = trim($_POST["zadatak"]);
$podaci = Zadatak::vratiPodatke($zadatak, $konekcija);
if ($podaci->slika != "") {
unlink("../slike/".$podaci->slika);
}
Zadatak::obrisi($zadatak, $konekcija);
} else if (isset($_POST["button"])) {
$zadatak = trim($_POST["zadatak"]);
$naziv = trim($_POST["naziv"]);
$kategorija = trim($_POST["kategorija"]);
$opis = trim($_POST["opis"]);
$izvrsen = trim($_POST["status"]);
$provera = trim($_POST["provera"]);
$obrisi = trim($_POST["obrisi"]);
if ($provera != "") {
$ime = "";
}
if ($_FILES["real_file"]["name"] != "") {
$ime = time()."_".$_FILES["real_file"]["name"];
$target = "../slike/".$ime;
move_uploaded_file($_FILES["real_file"]["tmp_name"], $target);
}
Zadatak::izmeni($zadatak, $naziv, $kategorija, $opis, $izvrsen, $ime, $konekcija);
}
?>
更新功能:
public static function izmeni($zadatak, $naziv, $kategorija, $opis, $izvrsen, $slika, mysqli $konekcija) {
$datumZavrsetka = null;
if ($izvrsen == "1") {
$datumZavrsetka = date('Y-m-d H:i:s');
}
if ($slika != "") {
$dodaj = $konekcija->prepare("UPDATE zadatak SET naziv = ?, kategorija = ?, opis = ?, izvrsen = ?, datumZavrsetka = ?, slika = ? WHERE zadatakID = ?");
$dodaj->bind_param("sisissi", $naziv, $kategorija, $opis, $izvrsen, $datumZavrsetka, $slika, $zadatak);
$dodaj->execute();
} else {
$dodaj = $konekcija->prepare("UPDATE zadatak SET naziv = ?, kategorija = ?, opis = ?, izvrsen = ?, datumZavrsetka = ?, slika = NULL WHERE zadatakID = ?");
$dodaj->bind_param("sisisi", $naziv, $kategorija, $opis, $izvrsen, $datumZavrsetka, $zadatak);
$dodaj->execute();
}
return $dodaj;
}
HTML和jQuery:
<div class="datadeo">
<h4>Naziv</h4>
<input type="text" id="naziv" name="naziv" value ="<?=$podaci->naziv?>">
<h4>Kategorija</h4>
<select id="kategorija" name="kategorija"></select>
<h4>Opis</h4>
<textarea name="opis" id="opis"><?=$podaci->opis?></textarea>
</div>
<div class="datadeo1">
<h4>Slika</h4>
<?php if($podaci->slika == "") { ?>
<div id="slikadiv">
<input type="file" name="real_file" id="real_file" accept=".jpg, .jpeg, .png" value="" hidden="hidden">
<button type="button" id="custom_button" class="inputslika">Izaberi sliku</button>
</div>
<?php } else { ?>
<div id = "slikawrapnad" class="slikawrapnad">
<div class="slikawrap1">
<img id="slicica" src="../slike/<?=$podaci->slika?>"/>
</div>
<input type="file" name="real_file" id="real_file" accept=".jpg, .jpeg, .png" value="" hidden="hidden">
<button type="button" id="custom_button" class="inputslika1"><span class="puntekst">Izmeni sliku</span><span class="krataktekst">Izmeni</span></button>
<button type="button" id="custom_button1" class="inputslika2" onclick="resetujFormu();"><span class="puntekst">Obriši sliku</span><span class="krataktekst">Obriši</span></button>
</div>
<?php } ?>
<h4>Status</h4>
<div class = "status">
<input type="radio" id="neizvrsen" name="status" class="opcija" value="0">
<label for="neizvrsen">Neizvršen</label>
<input type="radio" id="izvrsen" name="status" class="opcija" value="1">
<label for="izvrsen">Izvršen</label>
</div>
<div id="buttonwrapperizmena">
<div class="buttoncontainerizmena">
<button type="submit" class="buttonizmena" name="button" onclick="izmeniZadatak();"><span class="puntekst">Izmeni zadatak</span><span class="krataktekst">Izmeni</span></button>
</div>
<div class="buttoncontainerizmena">
<button type="submit" class="button2izmena" name="button2" onclick="obrisiSliku(); obrisiZadatak();"><span class="puntekst">Obriši zadatak</span><span class="krataktekst">Obriši</span></button>
</div>
</div>
<input type="text" value="" id="provera" name="provera" hidden="hidden">
<input type="text" value="" id="obrisi" name="obrisi" hidden="hidden">
</div>
<script>
function izmeniZadatak() {
$("#formaizmena").ajaxForm(function() {
$("#prikaziizmeni").css("display", "flex");
popuniZadatke();
$("#skriveno").css('display', 'none');
})
}
</script>
表单在删除任务时工作正常-如果它有图像,它将删除任务和图像,如果没有,它只会删除图像。当它必须上传一张新图片、更改一张现有图片或删除一张现有图片时,该表单工作正常。但是当我试图更新它而不对任务中的图片做任何事情时,问题就发生了。不管我做什么,它总是消失(数据库字段显示为NULL),我似乎无法弄清楚它。有人能帮帮我吗?
1条答案
按热度按时间lp0sw83n1#
你得换衣服了
到
即,您必须删除
部分,以便当没有新的上传时,它不会用
NULL
覆盖图像数据。如果只是从UPDATE
查询中删除它,则该列中的现有值将保持不变。