چجوری این فرم Ajax رو بسازم ؟!

Mostafa74

کاربر عضو
با سلام خدمت همه دوستان عزیز
دوستان متاسفانه بنده به Ajax تسلط ندارم و پروژه ای که باید طراحی کنم قسمت اصلیش Ajax هستش
من یک فرم دارم به شکل زیر 
 
post-18041-0-94731700-1436701549_thumb.jpg

و یک دیتابیس شامل " نام کالا " ، " بارکد " ، " قیمت " که میخوام وقتی بارکد کالا در فیلد وارد شد و دکمه " Enter " زده شد بصورت اتوماتیک یک 3 تا فیلد به جدول اضافه بشه و اطلاعات مربوط به اون بارکد از روی دیتابس نمایش داده بشه
فیلدهای اضافه شده هم اسمشون باید به شکل " name[] " باشه تا در مرحله پردازش به شکل آرایه در بیاد که بشه باهاش کار کرد 
با تشکر 
ممنون میشم راهنماییم کنید خیلی ضروریه

You must be registered for see images attach


 

امین موسائی

کاربر عضو
سلام دست و پا شکسته توضیح میدم ببخشید خلاصه

این کد ajax هست که اطلاعات رو میفرسته یه صفحه دلخواه

در اون صفحه شما باید از کد php اتفاده کنی و اطلاعات مربوطه رو از دیتابیس بخونی و در اون جدولی که میخوای نمایش بدی

اول باید کتابخونه jquery  رو توی صفحه اتچ کنی

به این صورت

<script type="text/javascript" src="jquery.js"></script>بعد این کد میفرسته به اون صفحه دلخواه

<script type="text/javascript"> $(document).ready(function(){ $("#text").keyup(function(){ var key = $("#text").val(); var active = true; $.post("اسم اون صفحه دلخواه",{key:key,active:active},function(data){ $("#result").html(data); }); }); });</script>خط اول که تگ جاواسکریپته

یه توضیح کوچک : با $ اشاره میکنه به المنتهای داخل صفحه

خط دوم میگه المنت داکیومنت وقتی اماده شد یه فاتکشن اجراکن

خط بعدی میگه اون المنتی که id ش text هست وقتی که داخلش نوشته شد بازم یه فانکشن اجرا کن

خط بعدی دوتا متغیرتعریف کردیم که اولیش مقدار اون تکستی که id ش text هست رو درخودش نگه میداره

و بعدی هم همینجوری گفتیم وضعیتت true باشه تا در اون صفحه ازش استفاده کنیم

خط بعدی هم گفتیم با متد post بفرستش به صفحه دلخواه و اون متغیر هار هم با خودت ببر

key:key این key اول اون متغیرkey هست که تعریف کرده بودیم key دوم یه اسم هست که تعریفش کردیم تا دراون ازش استفاده کنیم

active:active هم مثل key هست

بعدشم یه فانکشن اجرا میکنه و اون data برگشتی ازصفحه ajax.php رو میگیره

خط بعدی هم میگه اون المنتی که id ش  result هست htmlَش بشه اون دیتای برگشتی (این یه دایو یا جدول هست که داخل اون نمایش داده میشه همون جایی میزاریش که باید اطلاعات رو نمایش بدی)

درصفحه ajax.php هم بااستفاده از اون متغیر هایی که فرستادیم اون صفحه چک میشه که ایا چیزی به این صفحه اومده یانه

اینم کد php

<?phpinclude "config/connect.php"; if(isset($_post["active"]) && $_post["key"]) { $key = $_post["key"]; $sql = "SELECT * FROM `page` WHERE `title` LIKE :title "; $result = $connect->prepare($sql); $k = "%".$key."%"; $result->bindParam(":title",$k); if($result->execute()) { if($result->rowCount()>0) { while($rows=$result->fetch(PDO::FETCH_ASSOC)) { echo $rows["title"]."<hr />"; } } else { echo "جستجو نتیجه ای نداشت"; } } }?>موفق باشید

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

 
آخرین ویرایش توسط مدیر:

Mostafa74

کاربر عضو
سلام دست و پا شکسته توضیح میدم ببخشید خلاصه

این کد ajax هست که اطلاعات رو میفرسته یه صفحه دلخواه

در اون صفحه شما باید از کد php اتفاده کنی و اطلاعات مربوطه رو از دیتابیس بخونی و در اون جدولی که میخوای نمایش بدی

اول باید کتابخونه jquery  رو توی صفحه اتچ کنی

به این صورت

<script type="text/javascript" src="jquery.js"></script>بعد این کد میفرسته به اون صفحه دلخواه

<script type="text/javascript"> $(document).ready(function(){ $("#text").keyup(function(){ var key = $("#text").val(); var active = true; $.post("اسم اون صفحه دلخواه",{key:key,active:active},function(data){ $("#result").html(data); }); }); });</script>خط اول که تگ جاواسکریپته

یه توضیح کوچک : با $ اشاره میکنه به المنتهای داخل صفحه

خط دوم میگه المنت داکیومنت وقتی اماده شد یه فاتکشن اجراکن

خط بعدی میگه اون المنتی که id ش text هست وقتی که داخلش نوشته شد بازم یه فانکشن اجرا کن

خط بعدی دوتا متغیرتعریف کردیم که اولیش مقدار اون تکستی که id ش text هست رو درخودش نگه میداره

و بعدی هم همینجوری گفتیم وضعیتت true باشه تا در اون صفحه ازش استفاده کنیم

خط بعدی هم گفتیم با متد post بفرستش به صفحه دلخواه و اون متغیر هار هم با خودت ببر

key:key این key اول اون متغیرkey هست که تعریف کرده بودیم key دوم یه اسم هست که تعریفش کردیم تا دراون ازش استفاده کنیم

active:active هم مثل key هست

بعدشم یه فانکشن اجرا میکنه و اون data برگشتی ازصفحه ajax.php رو میگیره

خط بعدی هم میگه اون المنتی که id ش  result هست htmlَش بشه اون دیتای برگشتی (این یه دایو یا جدول هست که داخل اون نمایش داده میشه همون جایی میزاریش که باید اطلاعات رو نمایش بدی)

درصفحه ajax.php هم بااستفاده از اون متغیر هایی که فرستادیم اون صفحه چک میشه که ایا چیزی به این صفحه اومده یانه

اینم کد php

<?phpinclude "config/connect.php"; if(isset($_post["active"]) && $_post["key"]) { $key = $_post["key"]; $sql = "SELECT * FROM `page` WHERE `title` LIKE :title "; $result = $connect->prepare($sql); $k = "%".$key."%"; $result->bindParam(":title",$k); if($result->execute()) { if($result->rowCount()>0) { while($rows=$result->fetch(PDO::FETCH_ASSOC)) { echo $rows["title"]."<hr />"; } } else { echo "جستجو نتیجه ای نداشت"; } } }?>موفق باشید

امیدوارم کارت راه یافته با این توضیحم
داداش واقعا دمت گرم همین که وقت گذاشتی یه راهنمایی کردی 

تست میکنم مشکلی بود بهت پیام میدم 

سر فرصت هم باید بشینم AJAX رو یاد بگیرم 

بازم ممنون

 

Mostafa74

کاربر عضو
سلام .
من یه دیتابیس دارم شامل " name " , " barcode" , " price"  و یک فرم شبیه فرم زیر :


من میخوام وقتی کاربر بارکد رو پر کرد و دکمه ی " ENTER " رو زد اطلاعات مثل تصویر زیر پردازش بشه :

توضیحات تصویر : با زدن دکمه Enter اطلاعات ارسال میشه به یه فایل PHP و فایل PHP اطلاعات مربوط به اون باکد رو از دیتابیس میخونه و میفرسته به فایل HTML و اطلاعات در 3 تا فیلد جدید نمایش داده میشه هر بار که کاربر یه بارکد وارد میکنه 3 تا فیلد جدید مربوط به اون محصول به لیست اضافه میشه 
نام فیلد ها مثل کد زیر باشه و فیلد های جدید هم که ساخته میشه اسمشون همینجوری باشه که بصورت آرایه به PHP ارسال بشه

 
  <form action="do.php" method="Post">    name : <input name="name[]" type="text" />    barcode: <input name="barcode[]" type="text" />    price : <input name="price[]" type="text" />  </form>
ممنون میشم راهنمایی کنید

 

alifiresoft

کاربر عضو
قصد شما از زدن تاپیک تکراری چیه ؟ من نمیفهمم . 



این تاپیکم که مال شماست. با همین موضوع.

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
تاپیک ها ادغام شدند . در صورت تکرار برخورد میشه .

 

Mostafa74

کاربر عضو
دوستان لطفا راهنمایی کنید ! 

انجمن بجز ادغام و حذف تاپیک های تکراری و کنترل تاپیک ها  نیاز به پاسخگویی هم داره

 

Mostafa74

کاربر عضو
alifiresoft گفت:
چیرو جواب بدیم؟ اون پاسخی که دوستمون گفتم رو تست کردید؟
به تست کردم یه قسمتی از کد PHP ارور میده هیچ جوره هم ارورش رفع نشد

در ضمن کدی که دوستمون دادن فیلد جدید تولید نمیکنه فقط فراخوانی میکنه و نمایش میده !

 

MahdiY

راهبر انجمن
شما کد های فعلی تون را قرار بدید

شما لیست خرید و یجور فاکتور میخواهید درست کنید؟ (شبیه تعاونی ها؟)

به نظرم یه سفارش تو دیتابیس ذخیره کنید (بر اساس آی پی یا کوکی)

و اونا را دونه دونه بهش اضافه کنید‌ (افزودن بارکد)

قسمت لیست کالا ها را هم بصورت آجکس بذارید رفرش بشه (همون قسمت که نام و بارکد و قیمت هست)

 

Mostafa74

کاربر عضو
شما کد های فعلی تون را قرار بدید

شما لیست خرید و یجور فاکتور میخواهید درست کنید؟ (شبیه تعاونی ها؟)

به نظرم یه سفارش تو دیتابیس ذخیره کنید (بر اساس آی پی یا کوکی)

و اونا را دونه دونه بهش اضافه کنید‌ (افزودن بارکد)

قسمت لیست کالا ها را هم بصورت آجکس بذارید رفرش بشه (همون قسمت که نام و بارکد و قیمت هست)
احسنت دقیقا همین رو میخوام

یه فیلد هست که داخلش " autofocus " 'گذاشتم !

این فیلد با بارکد خوان پر میشه 

بارکد خوان میاد بارکد رو داخل فیلد کپی میکنه و اتوماتیک اینتر رو میزنه

میخوام این بارکد بره تو دیتابیس محصول مورد نظر رو فراخوانی کنه و اطلاعات بازگشتی توی یه فرم اضافه بشه تا آخر سر همه ی محصولات فاکتور بشه و داخل جدول فروشها ذخیره بشه !

 

MahdiY

راهبر انجمن
ببین این کار اشتباهیه آخر سر اضافه بشه

یهو اتصال اینترنت قطع شد یا ...

شما یه جدول بسازید به نام orders

orderid - userid - date

بعد یه جدول هم بزن به نام items

item - productid - name - barcode - price

بعد وقتی بار کد را زدی بره از تو محصولات پیداش کنه و با orderid مشخص بزنه تو جدول items

پس از اون بصورت html کدش را چاپ کنید (تو فایل اجرای دستورات)

بعد با تابع append اضافه کنید به قسمت مورد نظر

در پایان با زدن کلید محاسبه با استفاده از اون orderid برید و محاسبه کنید

اینجوری دستتون بیشتر بازه

امیدوارم تئوری درست رسونده باشم

اگر مفید نبود و متوجه نشدید بگید تا کدش را بنویسم

 

Mostafa74

کاربر عضو
ببین این کار اشتباهیه آخر سر اضافه بشه

یهو اتصال اینترنت قطع شد یا ...

شما یه جدول بسازید به نام orders

orderid - userid - date

بعد یه جدول هم بزن به نام items

item - productid - name - barcode - price

بعد وقتی بار کد را زدی بره از تو محصولات پیداش کنه و با orderid مشخص بزنه تو جدول items

پس از اون بصورت html کدش را چاپ کنید (تو فایل اجرای دستورات)

بعد با تابع append اضافه کنید به قسمت مورد نظر

در پایان با زدن کلید محاسبه با استفاده از اون orderid برید و محاسبه کنید

اینجوری دستتون بیشتر بازه

امیدوارم تئوری درست رسونده باشم

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

اگر میشه نمونه کد append  رو بده خیلی ممنون میشم من Jquery و Ajax کار نکردم

با تشکر

 
آخرین ویرایش توسط مدیر:

Mostafa74

کاربر عضو
دست همه دوستان در نکنه همه راهنمایی که کرده بودین رو با هم ترکیب کردم قبلش یکم آموزش JQUERY خوندم و شد اونی که میخواستم

خیلی آقایید

نمیدونم چجوری تشکر کنم

بعد 4 روز شبانه روز ور رفتن بالاخره تونستم

 

Mostafa74

کاربر عضو
سلام به یه مشکل بر خوردم

مقادیر دریافتی از PHP با استفاده از append() در HTML ایمپورت میشه !

حالا میخوام اینا توی یک فرم باشه و توی HTML قبل از قسمتی که اطلاعات وارد میشه اینو میذارم 

<form action="text.php" method="get"> و نمی بندمش اجازه میدم باز باشه تا اینپوت ها زیرش اضافه بشه ولی اتوماتیک وقتی صفحه میاد بالا انتهاش </form> قرار میگیره !

 

MahdiY

راهبر انجمن
سلام

لطفا سورس را قرار دهید

فرم را نباید باز بذارید ! append ربطی به باز و بسته بودن تگ ندارد

 

Mostafa74

کاربر عضو
سلام

لطفا سورس را قرار دهید

فرم را نباید باز بذارید ! append ربطی به باز و بسته بودن تگ ندارد
 مشکلم کامل حل شد واقعا دمت گرم خیلی کمک کردی

برنامه ای که نوشته شد هم شده یه نیمچه برنامه حسابداری :D خیلی باحال و تکمیل شد 

دمو : 

 
آخرین ویرایش توسط مدیر:
بالا