ورود

View Full Version : سوال: پیدا کردن مقادیر اطلاعات فرم



kazaminasab
پنج شنبه 09 شهریور 1391, 01:00 صبح
با سلام خدمت دوستان میخواستم ببینم چطور میتونم مقادیر اطلاعات فرم را بدست بیارم و در یک input hidden بریزم در فرم نمیدونم چند تا کنترل هست چون کنترل چون تک باکس وغیره داینامیک اضافی میشن و من میخواهم اطلاعات کل اشیا فرم را بدست بیارم و ذخیره کنم

Variable
پنج شنبه 09 شهریور 1391, 14:15 عصر
کار سختی نیست شما میتونی فرم رو سریالایز کنی . بعد اطلاعات فرم . یعنی هر فیلد و مقدارشو به صورت key=value بدست میاری
اینجا رو ببین
(http://api.jquery.com/serialize/)

kazaminasab
پنج شنبه 09 شهریور 1391, 15:27 عصر
کار سختی نیست شما میتونی فرم رو سریالایز کنی . بعد اطلاعات فرم . یعنی هر فیلد و مقدارشو به صورت key=value بدست میاری
اینجا رو ببین
(http://api.jquery.com/serialize/)
میشه حالا بگید چطور میتونم بفرستمش به دیتابیس

Variable
جمعه 10 شهریور 1391, 00:08 صبح
چون دسترسی به دیتابیس در سمت سرور هست. پس شما ابتدا باید داده های فرم رو به سرور ارسال کنی .
روشهایی که میتونی داده ها رو به سرور بفرستی :

خب یک راهش اینه که شما فرم رو submit کنی :
عنصر فرم رو بدست بیاری بعد سابمیتش کنی البته این روش عملکرد سنتی برات داره . یعنی فرم رو به سرور میفرسته . صفخه رفرش میشه و بعد...
اینجا رو ببین
(http://api.jquery.com/submit/)
راه دیگش که برای پیاده سازیه ایجکس بکار میره اینه که اون اطلاعات رو که سریالایز کردی رو به عنوان داده ها ی ارسالی به توابع مربوط به عملیات ایجکس در جیکوئری بفرستی . که معمولا $.post() هست
اینجا رو ببین
(http://api.jquery.com/jQuery.post/)

----
بعد که به سرور فرستاده شد. شما باید از طریق برنامه نویسیه سمت سرور داده هارو بگیری
و بعد باز از طریق برنامه نویسیه سمت سرور به دیتا بیس وصل بشی
وبعد از طریق ساخت یه رشته ( دستور اسکیو ال ) مناسب که اطلاعات فرم در اون قرار داره . اطلاعات رو به دیتابیس منتقل کنی



<?php

$pdo = new PDO($localHost,$localuser,$localpass,array(PDO::MY SQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
if(!empty($_POST))
{
if($_POST['operate']=='new')
{
$data=$_POST;
$newStr="SELECT `PersonnelNo`
FROM `personnel`
ORDER BY `personnel`.`PersonnelNo` DESC
LIMIT 0 , 1";
$stmt=$pdo->prepare($newStr);
$stmt->execute();
$count=$stmt->fetchAll();
$count=$count[0][0];
$count++;
$sql= "INSERT INTO bimarestan.$data[table](PersonnelNo)VALUES($count)";
$stmt=$pdo->prepare($sql);
$stmt->execute();
echo $count;
}

else
{
$sql=createSqlStr($_POST);
$obj=db($sql);
echo json_encode($obj);
}

}
?>

kazaminasab
جمعه 10 شهریور 1391, 00:30 صبح
ممنون از ارسال این دو تا لینک برای بنده دیدم بررسی کردم ولی هیچ کدام به جواب من ربطی نداشت درسری اولی که به من جواب دادید برگرید میاد نام کنترل مساوی با با مقدار انتخابی میکه من میخواهم اینو ذخیره کنم در دیتابیس میاد یک سری کاراکتر به همون فرم ذخیره میکنم میخواهم همون کار را کنم ذخیره کنم یعنی در متد سابمیت دکمه مقادیر که در یک کنترل مخفی در دیتابیس ذخیره کنم با سی شارپ میشه ولی اونوقت من باید یک کنترل رایت کنم وداینامیک ایجاد کنم وهم پی اچ پی ولی من شنیدم با json وjqury راحت تر میتونیم این پارامتر ها ذخیره کنی در دیتابیس

kazaminasab
جمعه 10 شهریور 1391, 13:08 عصر
چون دسترسی به دیتابیس در سمت سرور هست. پس شما ابتدا باید داده های فرم رو به سرور ارسال کنی .
روشهایی که میتونی داده ها رو به سرور بفرستی :

خب یک راهش اینه که شما فرم رو submit کنی :
عنصر فرم رو بدست بیاری بعد سابمیتش کنی البته این روش عملکرد سنتی برات داره . یعنی فرم رو به سرور میفرسته . صفخه رفرش میشه و بعد...
اینجا رو ببین
(http://api.jquery.com/submit/)
راه دیگش که برای پیاده سازیه ایجکس بکار میره اینه که اون اطلاعات رو که سریالایز کردی رو به عنوان داده ها ی ارسالی به توابع مربوط به عملیات ایجکس در جیکوئری بفرستی . که معمولا $.post() هست
اینجا رو ببین
(http://api.jquery.com/jQuery.post/)

----
بعد که به سرور فرستاده شد. شما باید از طریق برنامه نویسیه سمت سرور داده هارو بگیری
و بعد باز از طریق برنامه نویسیه سمت سرور به دیتا بیس وصل بشی
وبعد از طریق ساخت یه رشته ( دستور اسکیو ال ) مناسب که اطلاعات فرم در اون قرار داره . اطلاعات رو به دیتابیس منتقل کنی



<?php

$pdo = new PDO($localHost,$localuser,$localpass,array(PDO::MY SQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
if(!empty($_POST))
{
if($_POST['operate']=='new')
{
$data=$_POST;
$newStr="SELECT `PersonnelNo`
FROM `personnel`
ORDER BY `personnel`.`PersonnelNo` DESC
LIMIT 0 , 1";
$stmt=$pdo->prepare($newStr);
$stmt->execute();
$count=$stmt->fetchAll();
$count=$count[0][0];
$count++;
$sql= "INSERT INTO bimarestan.$data[table](PersonnelNo)VALUES($count)";
$stmt=$pdo->prepare($sql);
$stmt->execute();
echo $count;
}

else
{
$sql=createSqlStr($_POST);
$obj=db($sql);
echo json_encode($obj);
}

}
?>

میشه در مورد این کد توضیح بدید

Variable
شنبه 11 شهریور 1391, 18:58 عصر
ممنون از ارسال این دو تا لینک برای بنده دیدم بررسی کردم ولی هیچ کدام به جواب من ربطی نداشت درسری اولی که به من جواب دادید برگرید میاد نام کنترل مساوی با با مقدار انتخابی میکه من میخواهم اینو ذخیره کنم در دیتابیس میاد یک سری کاراکتر به همون فرم ذخیره میکنم میخواهم همون کار را کنم ذخیره کنم یعنی در متد سابمیت دکمه مقادیر که در یک کنترل مخفی در دیتابیس ذخیره کنم با سی شارپ میشه ولی اونوقت من باید یک کنترل رایت کنم وداینامیک ایجاد کنم وهم پی اچ پی ولی من شنیدم با json وjqury راحت تر میتونیم این پارامتر ها ذخیره کنی در دیتابیس

معذرت میخام ولی من یه مقدار متوجه صحبتتون نشدم . واضح تر توضیح میدید؟

ببینید شما پرسیدید : میشه حالا بگید چطور میتونم بفرستمش به دیتابیس
ارسال به دیتابیس . یعنی اول اطلاعات رو بفرستی به برنامه ایی که در سمت سرور هست و بعد اون اطلاعات رو به دیتابیس منتقل کنی.
خب من دو راه برای ارسال اطلاعات به سمت سرور به شما نشون دادم ..

و در یک مثال هم نحوه گرفتن اطلاعات و ذخیره اون ها تو دیتابیس رو نشون دادم .
در این خط به دیتابیس وصل میشم . که دیتابیس من مایسکول هست.

$pdo = new PDO($localHost,$localuser,$localpass,array(PDO::MY SQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

اینجا چک میکنم که ایا اطلاعاتی (فرمی ) از سمت کلاینت سابمیت شده .

if(!empty($_POST))

اینجا میام یه مقداری رو که ازسمت کلاینت به صورت operate=new
به سمته سرور فرستاده شده . میگیرم .

if($_POST['operate']=='new')

اینجا هم یه دستور اسکیول میسازم . تا بر روی دیتابیس اعمال کنیم

$newStr="SELECT `PersonnelNo`
FROM `personnel`
ORDER BY `personnel`.`PersonnelNo` DESC
LIMIT 0 , 1";
با این کد هم اسکیول رو روی دیتابیس اعمال میکنم

$stmt=$pdo->prepare($newStr);
$stmt->execute();

با این کد هم نتیجه کوئری دیتابیس رو به صورت یک ارایه دریافت میکنم و در متغیر میریزم

$count=$stmt->fetchAll();


باقیه کدها هم همین کار و میکنه . ولی در کل همین چند مرحله است که گفتم
امیدوارم این بار دیگه درست گفته باشم :D

Variable
شنبه 11 شهریور 1391, 19:02 عصر
برای کار با جیسون هم میتونی اینجا رو ببینی (http://barnamenevis.org/showthread.php?357604-%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A8%D8%A7-%D8%AC%DB%8C-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C) شاید کمکت کنه