Ben onay kutularını bir formu görüntülemek ve daha sonra bu kutuların işaretli olup olmadığını bir veritabanına eklemek çalışıyorum hangi ile bir form var. Ardından, sayfa her çağrıldığında, değerini kontrol ve kontrol ya da değil gibi onay kutusunu görüntülemek için uygun html forma bilgi ekleyecektir.
Ben kısa yapmak için aşağıdaki kod örneği modifiye var, ve ben bir şey yapmayacağım ki, ben 'değer' için işaretli değer atama am farkındayım.
Yaklaşımı
<input type="checkbox" name="notice" value="checked" checked/>
geçerli değil html, her tarayıcıda çalışır ve örnek dayalı iken, kontrol gibi bir onay kutusu görüntülemek için here. Ben bu yaklaşımı ile sopa tercih ederim.
Şimdi, benim koduyla yanlış olduğunu görmüyorum.
Ilk adımlar article_no birincil anahtar olarak, alınabilir hangi bir satır onil arasında veritabanından değerleri almak için olmalıdır. Hiçbir şey elde edilirse, daha sonra değişkenler sadece onay kutusu işaretli durumda sonuçları, "" atanır.
Değer kontrol edilir gibi seçilirse, bu veritabanına eklenmesi gereken, ve sayfanın bir sonraki görüntüleme üzerine kontrol olarak gösterecektir.
Olduğu gibi Şimdi, bu kod compeltely başarısız olur. kundakçı konsolunda gönderilen veya alınan bir şey görünmüyor, hiçbir hatalara ya php veya mysql ile kaydedilir, hiçbir şey alanlar ve bu doğru olma, yok mysql hatalar raporlanır rağmen veritabanında görünür ...
Sorun nedir?
The code:
<?php
error_reporting(E_ALL);
if (isset($_GET["cmd"]))
$cmd = $_GET["cmd"];
else
if (isset($_POST["cmd"]))
$cmd = $_POST["cmd"];
if (isset($_GET["pk"]))
{ $pk = $_GET["pk"];}
if (isset($_POST["deleted"]))
{ $deleted = $_POST["deleted"];}
if (isset($_POST["notice"]))
{ $notice = $_POST["notice"];}
$con = mysqli_connect("localhost","user","pass", "db");
if (!$con) {
echo "Can't connect to MySQL Server. Errorcode: %s\n". mysqli_connect_error();
exit;
}
$con->set_charset("utf8");
$getformdata = $con->query("select * from TEST where ARTICLE_NO = '$pk'");
$checkDeleted = "";
$checkNotice = "";
while ($row = mysqli_fetch_assoc($getformdata))
{
$checkDeleted = $row['deleted'];
$checkNotice = $row['notice'];
}
if($cmd=="submitinfo"){
$statusQuery = "INSERT INTO TEST VALUES (?, ?, ?)";
if ($statusInfo = $con->prepare($statusQuery)) {
$statusInfo->bind_param("sss", $pk, $deleted, $notice);
$statusInfo->execute();
$statusInfo->close();
} else {
print_r($con->error);
}
}
echo "<form name=\"statusForm\" action=\"x.php\" method=\"post\" enctype=\"multipart/form-data\">
<h1>Editing information for auction: ".$pk."</h1>
Löschung Ebay:
<input type=\"checkbox\" name=\"deleted\" value=\"checked\" ".$checkDeleted." align=\"right\"/>
<br />
Abmahnung:
<input type=\"checkbox\" name=\"notice\" value=\"checked\" ".$checkNotice." align=\"left\"/>
<br />
<input type=\"hidden\" name=\"cmd\" value=\"submitinfo\" />
<input name=\"Submit\" type=\"submit\" value=\"submit\" />
</form>";
Gerçek form / sayfa, ben bir yerde uygun sanitasyon var.
Büyük bir sorun hiçbir şey veritabanına eklenen ediliyor ve hiçbir hataları hiç iade ediliyor olmasıdır!