PDA

View Full Version : سوال: کنترل کردن اطلاعات ورودی توسط php



mehdiv
جمعه 05 دی 1393, 19:40 عصر
با سلام خدمت تمامی دوستان
یه سوال داشتم
من یه فرم شبیه فرم استخدام طراحی کردم
که به یه فایل php ارسال میشه برای بررسی اطلاعات و بعد هم در دیتابیس ثبت میشه
حالا مشکل من اینجاست که توی این فرم 9 تا چک باکس هست که کاربر باید توشو تیک بزنه اما نه همه رو
فقط اونایی رو که دوست داره
حالا من نمیدونم چجوری میتونم اینو توی php بررسی کنم و بعد توی دیتابیس ثبت کنم
منظورم اینه که مثلا اونایی که تیک خوردن به عنوان 1 ثبت بشه و اونایی که تیک نخورده بودن به عنوان 0
و همچنین یه سوال پرسیده شده که باید یه گزینه انتخاب بشه بله یا خیر که به صورت radio button هست
میخوام اینم بدونم چوری برسیش کنم
ممنون

ostadsho
جمعه 05 دی 1393, 23:18 عصر
اگر این صفحه اولتون باشه:




<form action="page2.php" method="post">

<input type="checkbox" name="test">

</form>





توی صفحه دوم بنویسید:



<?php

if(isset($_POST['test'])){$test=1;} else{$test=0}


?>





اگر کاربر چک رو نزنه معنیش اینه که set نمیشه هیچی، اما اگر چک رو بزنه اون موقع خروجی set میشه.

nasirb
شنبه 06 دی 1393, 00:04 صبح
دوست عزیر شما باید checkbox های خودتون رو به صورت آرایه ای بفرستید و در یک حلقه تک تک اون رو در DB ذخیره کنید به کد زیر دقت کنید :


<?php

if(isset($_POST['sub'])){

foreach ($_POST['favorite'] as $value) {

echo $value . '<br />';

//Save in DB

}

if(isset($_POST['gender'])){

//Save in DB

echo $_POST['gender'];

}

}

?>

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Check Box</title>

</head>

<body>

<form action="check.php" method="post">

<input type="checkbox" name="favorite[]" value="bike">I have a bike<br />

<input type="checkbox" name="favorite[]" value="car">I have a car <br />

<input type="checkbox" name="favorite[]" value="truck">I have a truck <br />

<input type="radio" name="gender" value="1"> male <br />

<input type="radio" name="gender" value="0"> female <br />

<input type="submit" name="sub" value="send" />

</form>

</body>

</html>



دقت کن در قسمت html من برای چک باکس ها در قسمت name نوشتم []favorite این مهمترین کار در اینجاست که value ها رو به صورت آزایه می فرسته ! radio هم که کاری نداره!!!

mehdiv
شنبه 06 دی 1393, 23:06 عصر
خوب حالا یه سوال این خیلی مهم هست که تو دیتابیس ثبت بشه که کدوم تیک خورده کدوم نخورده چون بعد موقع نمایش همه گزینه ها میاد و اونایی که تیک خورده رو نشون میده
چجوری این کارو بکنم ؟

nasirb
یک شنبه 07 دی 1393, 14:07 عصر
دوست عزیر متوجه سوالتون شدم اما جواب این سوال مقداری سخت و البته به هنر شما در طراحی DB هم بستگی داره . چون ممکنه خودم هم در آینده به یک همچین چیزی احتاج پیدا کنم باید وقت بذارم و کدش رو بنویسم اما برای اینکه شما معطل نشید من یه راهنمایی می کنم:
ببینید همانطور که گفتم شما باید DB مناسبی برای این کار طراحی کنید . یک جدول برای مثال favorite و یک جدول هم باید برای گزینه های که کاربر تیک زده هم انتخاب کنید به طور مثال user_favorite . و بعد با join کردن این دو جدول باید بیایید و قسمت input ها در form رو بسازید (سعی کنید SQL مناسب رو براش پیدا کنید ممکنه به join احتیاج نباشه ) و بعد بگید هر کدوم که کاربر تیک زده صفت checked آن برابر checked قرار بگیره به طور مثال :

<input type="checkbox" name="favorite[]" value="bike" checked="checked">I have a bike<br />

کل کد بالا باید از طریق PHP و مقادیری که از DB می یاد پر بشه !!!!( خیلی مهم)
در ضمن باید در قسمت foreach بالا کلید رو هم بسازید و کلید رو هم در DB ذخیره کنید ( منظورم از کلید key$ بود ):


foreach ($_POST['favorite'] as $key => $value) {

echo $key . ' '.$value . '<br />';

//Save in DB

}

دوست عزیر من تلاشم رو میکنم اما به خاطر مشغله ای که دارم ممکنه نتونم وقت بذارم و کد رو بنویسم . در ضمن این روش من هستش و ممکنه روش های آسونتری هم باشه !!!