PDA

View Full Version : استفاده از ای جکس برای اینسرت



zohreh.hn
سه شنبه 30 اردیبهشت 1393, 13:00 عصر
سلام دوستان یه راهنمایی بفرمایید
یک جدول محصولات دارم که بصورت حلقه ی for خوانده ام و برای هرکدام در همان حلقه یک دکمه تعریف کرده ام حال با ای جکس می خواهم روی هرکدام از محصولات که دکمه ی مربوط اش را می زند به تعداد خریدهای کاربر اضافه شود ولی فقط اولین محصول را انجام می دهد و برای بقیه وقتی دکمه اضافه به سبد خرید را می زند اتفاقی نمی افتد
کد ای جکس:

<script>$(document).ready(function(){ $("#btn").click(function(){ var msg = $('#myFrom').serializeArray(); //alert(msg); $.ajax({ type : "POST", url : "ajaxfactor.php", data : msg, success : function(data){ $('.data').html(data); } }) });})</script>

کد پی اچ پی :


$result = readAllPro('pro');//show products $count = mysql_num_rows($result); if($count >= 1) { for($i = 0 ; $i < mysql_num_rows($result) ; $i++) { $id=mysql_result($result,$i,'id'); $mark=mysql_result($result,$i,'mark'); $model=mysql_result($result,$i,'model'); $price=mysql_result($result,$i,'price'); $price0=number_format($price); $count=mysql_result($result,$i,'count'); // $isExist=mysql_result($result,$i,'isExist'); $imgs=mysql_result($result,$i,'imgs'); $_SESSION['watchid'] = $id; $_SESSION['price'] = $price; if($count >= 1) { $is = 'موجود هست'; $isT=" <form dir='rtl' id='myFrom' method='post'> تعداد سفارش<input type='text' name='txtcount' id='txtcount' /><br /> <input type='hidden' name='watchid' id='watchid' value='$id' /> <input type='hidden' name='price' id='price' value='$price' /> <input type='hidden' name='orderid' id='orderid' value='$orderid' /> <input type='button' id='btn' value='افزودن به سبد خرید' /> </form> <div class='data'></div> "; } else { $is = 'موجود نمی باشد'; $isT=''; }
echo " <div id='product'> <div id='imgpro'><img src='Admin/$imgs' width='100' /></div> <div id='details'> <div id='code'></div> <div id='price'>$price0</div> <div id='Stock'>$is</div> <div id='order'>$isT</div> </div> </div> "; } }

و فانکشن ای جکس هم:


include 'Admin/functions.php'; $price0 = $_POST['price']; $orderid0 = $_POST['orderid']; $watchid0 = $_POST['watchid']; $count0 = $_POST['txtcount'];
// echo '=>'. $watchid0.'<br />'; //echo '=>'. $price0.'<br />'; $exist = mysql_result(mysql_query("SELECT count FROM watch_tbl WHERE id = '$watchid0'"),0,'count');//اگر بیشتر از موجودی باشد $iscount = $exist - $count0; // echo '$exist='.$exist.'&&'.'$count='.$count0.'<br />'; // if($iscount >= '0') { $newExist=mysql_query("UPDATE `jojo_db`.`watch_tbl` SET `count` = '$iscount' WHERE `watch_tbl`.`id` ='$watchid0';"); /* echo " <table border = '1'> <tr> <td>ردیف</td> <td>مارک</td> <td>مدل</td> <td>تصویر</td> <td>تعداد</td> <td>قیمت واحد</td> </tr> "; */ $result=insertCostomer($orderid0,$watchid0,$count0 ,$price0); if($result) echo 'insert sucssesfully'; else echo 'failde!!!!!'; }

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

zohreh.hn
سه شنبه 30 اردیبهشت 1393, 22:41 عصر
لطفا راهنمایی کنید

numberone1
سه شنبه 30 اردیبهشت 1393, 22:50 عصر
بجای این

$("#btn").click(function(){

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

$(document).on('click', '#btn',function(){

zohreh.hn
سه شنبه 30 اردیبهشت 1393, 23:10 عصر
بسیار سپاس گزارم فکر کنم کسی را به این اندازه خوشحال نکرده باشید.

numberone1
سه شنبه 30 اردیبهشت 1393, 23:14 عصر
بسیار سپاس گزارم فکر کنم کسی را به این اندازه خوشحال نکرده باشید.

خواهش مینمایم . خدمتی بود نا چیز . امیدوار هستم همواره شاد و خرم باشید :لبخند::قهقهه:

zohreh.hn
سه شنبه 30 اردیبهشت 1393, 23:16 عصر
یه سوال دیگه هم می تونم بپرسم؟؟؟
می خوام با همین کدی که دارم (کد فانکشن ایجکس) یک مقدار را بر گردانم و در یک جای مشخص نشان بدم ولی چون تو حلقه است به تعدادی که فرم برای هر محصول تکرار میشه پیغامم هم تکرار میشه میشه این مورد را هم راهنمایی بفرمایید. ممنون و خوشحال میشم

zohreh.hn
سه شنبه 30 اردیبهشت 1393, 23:24 عصر
ببخشید این کدی که به من دادید روی هر کدام که تعداد و سابمیت می کنم فقط یک محصول را تکراری ثبت میکنه میشه توضیح بدین و اصلاح کنید ممنون میشم

numberone1
سه شنبه 30 اردیبهشت 1393, 23:26 عصر
بعد از فراخوانی رویداد کلیک , اون المنت به جز اسم با this هم میشه صداش کرد

$(this).html(data)

منظورتون همین بود؟

numberone1
سه شنبه 30 اردیبهشت 1393, 23:28 عصر
ببخشید این کدی که به من دادید روی هر کدام که تعداد و سابمیت می کنم فقط یک محصول را تکراری ثبت میکنه میشه توضیح بدین و اصلاح کنید ممنون میشم

خوب فکر میکنم بخاطر اینه که آیدی برای یک المنت تنها استفاده میشه شما یک آیدی رو توی صفحتون چند بار تکرار کردین. این اشتباهه
باید از کلاس استفاده کنید
بعد از کلیک هم از this استفاده کنید