• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دریافت اطلاعات یک فیلد و کار با آن
#1
سلام دوستان عزیز
خسته نباشید
در یک فیلد دیتابیس 20 نام دارم
میخوام این 20 تا نام را در صفحه ای برای کاربران نمایش بدهم
که در کنار هر نام یک چک باکس باشه
و کاربر با زدن چک باکس اون نام را داخل دیتایبس ذخیره کنه


من تازه کارم
لطفا از راهنماییتان دریغ ننمایید
با تشکر
  پاسخ
تشکر شده توسط :
#2
نقل قول:و کاربر با زدن چک باکس اون نام را داخل دیتایبس ذخیره کنه
مگه خود نامها توی دیتابیس ذخیره نیست ؟
کارب%
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#3
(۱۳۹۱ خرداد ۲۶, ۱۲:۱۶ ب.ظ)Reza نوشته:
نقل قول:و کاربر با زدن چک باکس اون نام را داخل دیتایبس ذخیره کنه
مگه خود نامها توی دیتابیس ذخیره نیست ؟
کارب%

چرا ذخیره هست
من یک فیلد در دیتابیس دارم
که 20 تا یا بیشتر نام در اون ذخیره کرده ام
میخوام این نام ها را به کاربران نشون بدم
و اونا با زدن چک باکس اونا رو انتخاب کنند

در کل دو تا فیلد درصفحه باشه
که در اولی کاربر نام خودشو وارد کنه
برای فیلد دوم هم
وقتی بر روی یک چک باکس کلیک کرد مقدارش وارد فیلد بشه
بعد که دکمه ارسال را زد داخل یک جدول جداگانه ذخیره بشه
  پاسخ
تشکر شده توسط :
#4
نقل قول:که 20 تا یا بیشتر نام در اون ذخیره کرده ام
میخوام این نام ها را به کاربران نشون بدم
اولین چیزی که باید در موردش بدونی http://php.net/manual/en/function.mysql-fetch-assoc.php هست. بعد شما با استفاده از این تابع و کوئری که می نویسی داخل یه حلقه (while بهتره) میذاری و برای کاربر چاپ میکنی. مثل زیر:
کد پی‌اچ‌پی:
//in faghat ye nemone sadast
$query mysql_query("SELECT `names` FROM `table`");
while(
$row mysql_fetch_assoc($query))
{
echo 
$row['names'],'<br />';
}

//output masalan mishe alireza<br />saeed<br />
//vase inke checkbox kenaresh gharar bedi khob html e dige, be echo ezafe mikoni faghat 
غایب
  پاسخ
تشکر شده توسط : masoudmanson ehsan.s200
#5
ممنون از پاسختان
با این کار اسامی به همراه چک باکس در کنارش در صفحه لیست میشه
حالا اگه یک کاربر بیاد و نام محمود را تیک بزنه چگونه این نام انتخاب شده در دیتابیس ذخیره بشه؟
  پاسخ
تشکر شده توسط :
#6
نقل قول:حالا اگه یک کاربر بیاد و نام محمود را تیک بزنه چگونه این نام انتخاب شده در دیتابیس ذخیره بشه؟
خب شما فرم رو ساختی، چک باکس هات باید اینطوری باشه حتماً:
کد:
<input type="checkbox" name="names[]" value="saeed" />
<input type="checkbox" name="names[]" value="alireza" />
<input type="checkbox" name="names[]" value="hamid" />
<input type="checkbox" name="names[]" value="ehsan" />
بعد حالا بعد ارسال فرم بصورت POST (اینجا باید POST باشه وگرنه GET هم جواب میده.) مقادیر چک باکس های تیک خورده در قالب یه کوئری استرینگ ارسال میشه به سرور. برای دریافتش و ارسالش به پایگاه داده اینطوری عمل میکنیم:
کد پی‌اچ‌پی:
#deghat kon dar in nemone code hich masale amniati dar nazar gerefte nashode
//alan $_POST['names'] ye array hast ke havie asamie check shode mibashad
foreach($_POST['names'] as $name)
{
mysql_query("INSERT INTO `table`(`checked_names`) VALUES('".$name."')");
}
//dar nahat bade payane loop tamame maghadire array e name ha varede table va column moshakhas shode mishe 
غایب
  پاسخ
تشکر شده توسط : ehsan.s200
#7
با تشکر از پاسختان
کارم راه افتاد
خیلی ممنون
حالا اگه بخوام که کاربرا فقط یک چک باکس را انتخاب کنند چیکار میشه کرد؟
به طور مثال اگر کاربر 2
تا چک باکس انتخاب کند یک پیغام نمایش دهد که شما فقط یک انتخاب میتونید داشته باشید
  پاسخ
تشکر شده توسط :
#8
(۱۳۹۱ خرداد ۲۶, ۰۳:۵۷ ب.ظ)ehsan.s200 نوشته: با تشکر از پاسختان
کارم راه افتاد
خیلی ممنون
حالا اگه بخوام که کاربرا فقط یک چک باکس را انتخاب کنند چیکار میشه کرد؟
به طور مثال اگر کاربر 2
تا چک باکس انتخاب کند یک پیغام نمایش دهد که شما فقط یک انتخاب میتونید داشته باشید

دوستان با این کد جاوااسکریپت کارم راه افتاد
<script type="text/javascript" language="javascript">

function like_a_radio(oBox) {
var el, i = 0, f = oBox.form;
while (el = f[i++]) if (el.type == 'checkbox') el.checked = (el == oBox && el.checked);
}

</script>

ولی اگه میشد یک پیغام نمایش داد بهتر بود
-----------------------------------------------------
سوال آخر
آیا میشه کاری کرد که کاربر فقط یک بار بتونه یک تیک بزنه و نام را ارسال کنه؟
جوری نباشه که پشت سر هم یکی یکی نام ارسال کنه
با سشن میشه محدود کرد؟
یا از طریق آی پی شناسایی کرد که این کاربر قبلا نام ارسال کرده و برنامه محدودش کنه؟
پییشاپیش متشکرمHeart
  پاسخ
تشکر شده توسط :
#9
نقل قول:آیا میشه کاری کرد که کاربر فقط یک بار بتونه یک تیک بزنه و نام را ارسال کنه؟
بله میشه. سمت کلاینت فقط باید صورت بگیره. شما با جاوا اسکریپت میگی اگر یکی از باکس ها چک شد مابقی disable بشن.

نقل قول:با سشن میشه محدود کرد؟
اصلاً سشن ربطی به این چیزا نداره. در مورد سشن حتماً بخون. سشن سمت سروره. مقادیری که روش ذخیره میشه موقت رو سرور ضبط میشه.

نقل قول:یا از طریق آی پی شناسایی کرد که این کاربر قبلا نام ارسال کرده و برنامه محدودش کنه؟
باز اینم میشه ولی وقتی راه اول بهتره چرا راه دور بری؟!
غایب
  پاسخ
تشکر شده توسط :
#10
سلام
میشه به جای value که اسم گذاشتید یک متغیر بزارم؟؟؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان