PDA

View Full Version : ajax و دستور append



elnaz ja
جمعه 29 مرداد 1395, 13:28 عصر
سلام


میخوام لیست محصولات به صورت Ajax نشون بدم ولی تا مرحله (alert(data پیش میرم بعدش که میخوام append کنم و توی صفحه نشون بدم هیچی نشون نمیده


$(function () {
$.ajax({
url: "/news/search"
}).done(function(data) {
alert(data);
});
});





142051



alert برمیدارم دیگه تو صفحه نمیاد اینم کدش



$(function () {
$.ajax({
url: "/news/search"
}).done(function(data) {
$("#products").append(data);
});
});





اینم کنترل news



class newsController {


public function search() {
$db= Db::getInstance();
$products = $db->query("SELECT * FROM pym_product");
$data['products'] = $products;
View::renderPartial("/product/news.php" , $data);
}


}

NavidIvanian
جمعه 29 مرداد 1395, 17:12 عصر
سلام
ب جای .append() از .html() استفاده کنید ببینید درست میشه یا نه...

elnaz ja
جمعه 29 مرداد 1395, 18:32 عصر
سلام
ب جای .append() از .html() استفاده کنید ببینید درست میشه یا نه...

نه تغییری نمیکنه :(

hamedarian2009
جمعه 29 مرداد 1395, 18:47 عصر
توی حالت ajax دیگه با حالت معمولی فرق میکنه شما نباید متغیری به صفحه ارسال کنید بلکه باید توی همون کنترلر خروجی Html رو تولید کنید و سپس چاپ کنید حالا من نمیدونم از چه فریمورکی استفاده کنید و روش کارش با ajax چجوریه ولی اصولا همون جوری که من گفتم هست

numberone1
جمعه 29 مرداد 1395, 21:20 عصر
یه جای کار کدتون مشکل داره فقط خودتون میتونید پیداش کنید.
اول باید چک کنید که حتما المنت به آیدی products حتما وجود داشته باشه. به حروف بزرگ و کوچک هم دقت کنید.
بعد بجای alert توی فایرباگ نوع خروجی رو چک کنید. شاید خروجی بصورت json یا ارایه داره ارسال میشه
بجای .done توی خود ajax از success , error استفاده کنید و برای error حتما از alert استفاده کنید که متوجه بشن
فعلا همینارو تست کن احتمال خیلی زیاد مشکل و پیدا میکنی

elnaz ja
شنبه 30 مرداد 1395, 13:47 عصر
یه مشکلی وجود داره وقتی من داخل <div>
که این ajaxنشون میده یه متن میذارم.....ولی تا وقتی alert(data) هست اون متن نشون داده میشه ولی بعد اینکه اوکی میزنم متن توی
>div< هم مخفی میشه . کلا هرچی توی این<div>
میزارم با رفرش کردن یه لحظه میادو میره !! امکان داره به خاطر همین موضوع append نشه ؟ ( در همین الان )

sedamorde
شنبه 30 مرداد 1395, 14:36 عصر
سلام،
زمانی که alert اجرا میشه کد جاوا اسکریپت متوقف میشه تا alert بسته بشه، یعنی بعد از بسته شدن javascript ادامه پیدا میکنه (مطمئن بشید که از داخل جاوااسکریپت مثلا div#peoducts را empty نمی‌کنید)

شما باید در داخل صفحه‌ی HTML یک div به صورت زیر تعریف کرده باشید:


<div id="products"> </div>

همانطور که numberone1 گفت تست کنید باید مشکل حل بشه.

موفق باشید.

elnaz ja
یک شنبه 31 مرداد 1395, 00:35 صبح
ببینید
توی data که alert میکنم فقط کد html هست . مگه append کد html دریافت نمیکنه و اجرا ؟؟

arash_fa
یک شنبه 31 مرداد 1395, 21:21 عصر
ببینید
توی data که alert میکنم فقط کد html هست . مگه append کد html دریافت نمیکنه و اجرا ؟؟


الرت گلا خروجی را نشون میده و html ترجمه نمیکنه برای شما

شما از append استفاده کردی و کد شما درسته اگر در آلرت نشون میده در append هم باید نشون بده

شما یک div با id مورد نظر میسازی بعد بهش append میکنی مثلا


<div id="products">

</div>

<script>
$(function () { $.ajax({ url: "/news/search"}).success(function(data) { $("#products").append(data); });});</script>