PHP Formlar onay kutusunu girişini hatırlıyorum nasıl

5 Cevap php

Kullanılabilirlik amaçlı benim form tarlalar bu şekilde kurmak ister:

<?php

$username = $_POST['username'];
$message  = $_POST['message'];

?>

<input type="text" name="username" value="<?php echo $username; ?>" />

<textarea name="message"><?php echo $message; ?></textarea>

Kullanıcı doğrulama başarısız olursa bu şekilde, o daha önce girilen form girdi hala orada olacak ve sıfırdan başlamak gerek olmazdı.

Benim sorunum kullanıcı (doğrulama başarısız sonra sayfa yenileniyor zaman) önce seçmişti seçeneği ile seçili onay kutularını tutmak gibi olamaz. Bunun nasıl?

5 Cevap

Formunuza bu ekleyebilirsiniz:

<input type="checkbox" name="mycheckbox" <?php echo isset($_POST['mycheckbox']) ? "checked='checked'" : "" ?> />

isset denetler değişken seti ve boş değil ise. Yani bu kod, checked gelen $_POST değişken bir değeri vardır ancak eğer onay kutusunun eklenecektir ..

Benim ilk önerim, önce bazı istemci tarafı doğrulama kullanmak olacaktır. Belki devam etmeden önce doğrulama kontrollerini gerçekleştiren bir AJAX çağrısı.

Bu bir seçenek değilse, o zaman bu deneyin:

<input type="checkbox" name="subscribe" <?php echo (isset($_POST['subscribe'])?'checked="checked"':'') ?> />

subscribe = 1 Yani eğer, o zaman sizin için kutusunu seçmelisiniz.

Ben yapışkan onay kutusunu (bu işaretli öğeleri sayfasını ziyaret her zaman hatırlamak mümkün) oluşturmak için nasıl mücadele edilmiştir. Başlangıçta, ben bir veritabanı tablosundan benim değerleri olsun. Bu benim onay kutusu değeri benim db masada bir sütuna girilen demektir.

Ben aşağıdaki kodu oluşturulur ve gayet güzel çalışıyor. Ben o bütün css ve derin kodlama ile gitmek istiyorum, o kadar ... etmedi

CODE IN PHP

$arrival = ""; //focus here.. down
if($row['new_arrival']==1) /*new_arrival is the name of a column on my table that keeps the value of check box*/
{$arrival="checked";}// $arrival is a variable
else
{$arrival="";};
echo $arrival;

<b><label for ="checkbox">New Arrival</label></b>&nbsp;&nbsp;&nbsp;
<input type="checkbox" name ="$new_arrival" value="on" '.$arrival.' /> &nbsp;(Tick box if product is new) <BR><BR>
<input type="checkbox" name="somevar" value="1" <?php echo $somevar ? 'checked="checked"' : ''; ?>/>

Ayrıca, girişleri sterilize düşünün lütfen, bu yüzden yerine:

$somevar = $_POST['somevar'];

... Kullanmak daha iyidir:

$somevar = htmlspecialchars($_POST['somevar']);

Tarayıcı işaretli onay kutusu ile bir form gönderdiğinde, bu value öznitelikten name niteliği ve değeri adıyla bir değişken gönderir. Onay kutusunu not işaretli ise, tarayıcı onay kutusunu için hiçbir şey gönderir. Sunucu tarafında, array_key_exists() ile bu durum işleyebilir. Örneğin:

<?php
$checkedText = array_key_exists('myCheckbox', $_POST) ? ' checked="checked"' : '';
?>
<input type="checkbox" name="myCheckbox" value="1"<?php echo $checkedText; ?> />

array_key_exist() avoids a potential array index undefined warning that would be issued if one tried to access $_POST['myCheckbox'] kullanarak ve onu yoktu.