zohreh.hn
سه شنبه 30 اردیبهشت 1393, 14: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!!!!!'; }
علت اینکه چرا فقط برای اولین محصولی که نشان می دهد می دهد ای جکس کار می کند چیست؟
خیلی خیلی ممنونم
یک جدول محصولات دارم که بصورت حلقه ی 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!!!!!'; }
علت اینکه چرا فقط برای اولین محصولی که نشان می دهد می دهد ای جکس کار می کند چیست؟
خیلی خیلی ممنونم