PDA

View Full Version : پرکردن ستونهای جدول با جیسون



tux-world
چهارشنبه 05 بهمن 1390, 00:45 صبح
سلام.
چطوری میشه یه جدول table رو با جیسون ایجاد و پر کنم به جای اینکه یه حلقه شرطی php بنویسم؟

MMSHFE
چهارشنبه 05 بهمن 1390, 08:00 صبح
میشه بیشتر توضیح بدین؟

tux-world
چهارشنبه 05 بهمن 1390, 13:09 عصر
به عنوان مثال يه سلكت دارم كه موقعي كه مي خوام با حلقه php پر كنم سرعت لودش پايينه و تو ابتدا مختصات صفحه رو به هم ميريزه ولي وقتي كامل لود كرد و ريخت توش صفحه درست نشون داده ميشه. ميخوام يه سلكت معمولي اطلاعاتش رو توسط جيسون بخونم و با خود جيكوئري جدول رو ايجاد كنم ديگه نيازي به php نباشه.
مشكلم اينه كه اين جيسون رو بايد ابتداي اسكريپت ايجاد كنم؟ يا بايد قبلا ايجاد كرده باشم كه فكر كنم مشكل پيش مياد بعدا يا on the fly بايد اين كار انجام شه.
اگه بتونم از فايل جيسون ديتا بيس ايجاد كنم و بتونم بخونمش بقيش كاري نبايد داشته باشه.

MMSHFE
چهارشنبه 05 بهمن 1390, 15:00 عصر
مسئله اصلی سر اینه که دیتابیس در هر حال در اختیار PHP هست و اطلاعات رو نمیتونید با JS یا JQ بدست بیارین مگه اینکه از AJAX استفاده کنید که اون هم باز مستلزم استفاده از کد PHP برای استخراج اطلاعات هست و تنها مزیتش اینه که وقتی همه اطلاعات بارگذاری شد، میتونید یکجا اونها رو توی صفحه نشون بدین.

tux-world
چهارشنبه 05 بهمن 1390, 19:49 عصر
سلام. بلی اینها رو میدونم مشکلم اینه که الان با استفاده از ایجکس جیکوئری این اطلاعات رو از فایل چطوری به دست بیارم و اون فایل رو چطوری خروجیش رو به صورت جیسون تحویل بدم.

tux-world
پنج شنبه 06 بهمن 1390, 10:08 صبح
من یه مثال نوشتم ولی اشکال دارم کدم میشه کمک کنید؟
فایل json.php

<?php
include('./database.php');
$arr = array();
$rs = mysql_query("SELECT * FROM `madrese`.`liste_paye`");

while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
echo '{sample:'.json_encode($arr).'}';
?>
خروجی کد بالا:

{sample:[{"code_paye":"12","name_paye":"\u062d"},{"code_paye":"11","name_paye":"xsw"},{"code_paye":"10","name_paye":"\u062b\u062b\u062b"},{"code_paye":"8","name_paye":"\u063a\u063a\u063a"}]}
فایل test.php:

<script>
$(document).ready(function() {
$.getJSON("test.php",function(data){
$.each(arr.sample, function(i,post){
content = '\n';
content += '' + post.code_paye + '\n';
$("#contents").append(content);
});
});
});
</script>
<?php
echo "<div id=\'contents\'> </div>";
?>

tux-world
جمعه 07 بهمن 1390, 08:55 صبح
کسی میتونه کمک کنه؟

Reza1607
جمعه 07 بهمن 1390, 14:55 عصر
خوب مشكلتون چيه؟
نمي تونيد داده ها رو نمايش بدين ؟ اگه مشكلتون چيزيه كه گفتم بايد داده ها رو كه گرفتين parse‏ كنيد با استفاده از parseJSON
اگرهم چيزه ديگه اي هست به صورت شفاف بگيد تا بدون مشكل چي هست؟

tux-world
جمعه 07 بهمن 1390, 17:54 عصر
خوب همینه مشکلم عزیزم. حالا چطوری parse کنم؟ از اون فایل چطوری؟؟؟

Reza1607
جمعه 07 بهمن 1390, 18:26 عصر
گفتم كه با دستور parseJSON

Reza1607
جمعه 07 بهمن 1390, 18:43 عصر
من كد شما رو به اين صورت تغيير دادم و جواب داد نيازي هم به parseJSON‏ نبود



//ﻓﺎﯾﻞjson.php
<?php
include('./
database.php');
$arr = array();
$rs = mysql_query
("SELECT * FROM
`madrese`.`liste_paye`");
while($obj = mysql_
fetch_object($rs)) {
$arr[] = $obj;
}
echo json_
encode($arr);
?>

//ﻓﺎﯾﻞ:test.php
<script>
$(document).ready
(function() {
$.getJSON
("test.php",function
(data){
$.each(data,
function(i,post){
content = '\n';
content += '' +
post.code_paye + '\n';
$("#contents")
.append(content);
});
});
});
</script>
<?php
echo "<div id=
\'contents\'> </div>";
?>

tux-world
جمعه 07 بهمن 1390, 23:44 عصر
ممنون که وقت گذاشتی ولی هیچچی برنمی گردونه هیچچی چاپ نمیشه حتی داخل حلقه each هم نمیره متاسفانه

tux-world
شنبه 08 بهمن 1390, 00:15 صبح
درست شد کد شما رو یه نمه اصلاح کردم. اون متغیر data باید میشد متغیری که از جیسون میگرفتم یعنی arr. دست گلت درد نکنه