 |
อยากทราบวิธีทำให้ tabs ของ jquery เวลาที่เราทำการ refresh หน้าเว็บให้อยู่ tab เดิม |
|
 |
|
|
 |
 |
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Tabs - Content via Ajax</title>
<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
<script src="../../jquery-1.7.2.js"></script>
<script src="../../ui/jquery.ui.core.js"></script>
<script src="../../ui/jquery.ui.widget.js"></script>
<script src="../../ui/jquery.ui.tabs.js"></script>
<link rel="stylesheet" href="../demos.css">
<script>
$(function() {
$( "#tabs" ).tabs({
ajaxOptions: {
error: function( xhr, status, index, anchor ) {
$( anchor.hash ).html(
"Couldn't load this tab. We'll try to fix this as soon as possible. " +
"If this wouldn't be a demo." );
}
}
});
});
</script>
</head>
<body>
<div class="demo">
<div id="tabs">
<ul>
<li><a href="#tabs-1">Preloaded</a></li>
<li><a href="ajax/content1.html">Tab 1</a></li>
<li><a href="ajax/content2.html">Tab 2</a></li>
<li><a href="ajax/content3-slow.php">Tab 3 (slow)</a></li>
<li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
</div>
</div>
</div><!-- End demo -->
<div class="demo-description">
<p>Fetch external content via Ajax for the tabs by setting an href value in the tab links. While the Ajax request is waiting for a response, the tab label changes to say "Loading...", then returns to the normal label once loaded.</p>
<p>Tabs 3 and 4 demonstrate slow-loading and broken AJAX tabs, and how to handle serverside errors in those cases. Note: These two require a webserver to interpret PHP. They won't work from the filesystem.</p>
</div><!-- End demo-description -->
</body>
</html>
ตัวอย่างเช่นเราทำงานอยู่ที่ tab 3 แต่พอทำการ refresh หน้าเว็บแล้วจะกลับไปอยู่ tab 1 เลยอยากทราบวิธีทำให้อยู่ tab เดิมที่เราทำงานอยู่ครับ
Tag : PHP, jQuery
|
|
 |
 |
 |
 |
Date :
2012-06-30 22:06:29 |
By :
benservice |
View :
5033 |
Reply :
11 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่ม selected เข้าไป ลองเอาไปประยุกต์ดูครับ
Code (PHP)
(function() {
$( "#tabs" ).tabs({
ajaxOptions: {
error: function( xhr, status, index, anchor ) {
$( anchor.hash ).html(
"Couldn't load this tab. We'll try to fix this as soon as possible. " +
"If this wouldn't be a demo." );
}
},
selected: 3
});
});
|
 |
 |
 |
 |
Date :
2012-06-30 23:35:06 |
By :
Krungsri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยังไม่ค่อยเข้าใจเท่าไหร่ครับ
|
 |
 |
 |
 |
Date :
2012-07-01 02:52:38 |
By :
benservice |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปัญหาเดียวกันเลยค่ะ ไม่ทราบว่าอันนี้เจ้าของกระทู้ทำได้มั๊ยค๊ะ ลองไปตามที่คุณ deawx ยังไม่ได้ค่ะ ขอคำแนะนำด้วยค่ะ
|
 |
 |
 |
 |
Date :
2012-12-06 10:51:57 |
By :
keewa |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กระทู้นี้ตั้งแต่ปลายเดือนหก คำถามนี้ผมตอบให้คุณ keewa นะครับ
ถ้าจะให้ tab ค้างอยู่ที่หน้าสุดท้ายหลังจากเราปิดหน้า browser ไป ก็ต้องใช้ jQuery Cookie เข้าช่วย
อธิบายตรงนี้เข้าใจได้ยาก ผมทำตัวอย่างโค้ดไว้ให้ ลองไปดาวโหลดดูได้ที่
http://www.mineinc.net/qa/file/2012/12/06/file1.html
ปล. ตัว Option ของ jQuery Tabs มีหลายอย่าง ผมคิดว่าน่าจะมากที่สุดในบรรดา UI แท้ๆของ jQuery
|
 |
 |
 |
 |
Date :
2012-12-06 16:55:28 |
By :
dreamlover |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณคุณ jack มากค่ะ ผลลัพภ์ที่ได้จากโค๊ดของคุณ jack นั้นก็ดีค่ะ แต่ไม่ใช่อย่างที่ต้องการค่ะ คือหนูผิดเองค่ะ อาจจะสื่อสารไม่ตรงกัน คืออย่างงี้ค่ะ สมมติว่ามี tab ประมาณซัก 4 tab แต่ละ tab ก็จะแสดงข้อมูลโดยดึงมาจากไฟล์อื่นใช่มั๊ยค๊ะ แต่ทีนี้ในบาง tab จะมีดร็อปดาวน์ให้เลือกแสดงผลข้อมุลออกมา แล้วจะมีปุ่ม ok พอกดปุ่มแล้วแทนที่มันจะแสดงใน tab ของมัน แต่มันดันหลุดออกมาเป็น window อีกหน้าเลยอ่ะค่ะ คือหลุดออกมาเลย นี่แหละค่ะคือปัญหาว่าจะทำยังงัยให้มันแสดงผลลัพธ์อยู่ภายใน tab ของมัน
|
 |
 |
 |
 |
Date :
2012-12-07 10:10:52 |
By :
keewa |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต้องเอาโค้ดที่มีปัญหาอยู่มาโพสให้ผมดูครับ ข้อมูลเท่านี้ผมไม่สามารถตอบอะไรให้ได้ 
|
 |
 |
 |
 |
Date :
2012-12-07 11:30:17 |
By :
dreamlover |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็น jquery tab แบบเจ้าของกระทู้เลยค่ะ
Code (PHP)
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>ระบบฐานข้อมูล</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="jtab/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="jtab/jquery-1.8.3.js"></script>
<script src="jtab/jquery.cookie.js"></script>
<script src="jtab/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" href="jtab/demos.css" />
<script>
$(function() {
$( "#tabs" ).tabs({
beforeLoad: function( event, ui ) {
ui.jqXHR.error(function() {
ui.panel.html(
"Couldn't load this tab. We'll try to fix this as soon as possible. " +
"If this wouldn't be a demo." );
});
}
});
}
);
</script>
</head>
<body>
<div id="tabs">
<ul>
<li><a href="detail1.php">ข้อมูลเบื้องต้น</a></li>
<li><a href="detail2.php">สรุปงาน</a></li>
<li><a href="detail3.php">ผลรวม</a></li>
</ul>
</div>
</body>
</html>
ส่วนในไฟล์ detail1.php อาจจะมีเป็น ฟอร์มค้นหาข้อมูลให้กดปุ่ม OK แต่พอกดแล้วมันไม่อยุ่ในแท็บเดิมของมันค่ะ มันหลุดออกมาอีก window นึงเลย หรือแค่อาจจะเป็นลิงคฺ์ให้เปิดอีกเพจนึง
Code (PHP)
<a href="http://www.kapook.com">TEST</a>
็ก็หลุดแท็บเหมือนกันค่ะ
|
ประวัติการแก้ไข 2012-12-07 13:53:17
 |
 |
 |
 |
Date :
2012-12-07 13:52:31 |
By :
keewa |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค้ดอย่างที่เป็นอยู่ จะำทำให้อย่างที่คุณต้องการไม่ได้
หน้าของไฟล์ detail.php ที่อยู่ใน tab เป็นเหมือนภาพที่โหลดเข้ามา ตัวไฟล์จริงๆไม่ได้อยู่ที่นี่
เมื่อคุณ submit ฟอร์ม ยังไงก็ต้องกระโดดเปลี่ยนไปที่ไฟล์ detail1.php เพื่อรัน query
ปล. คุณสามารถทำอย่างที่ต้องการโดยใช้่ฟังก์ชั่น $.ajax(); ของ jQuery
วิธีอาจซับซ้อนหน่อย เพราะคุณต้องเปลี่ยนโครงสร้างของไฟล์ detail.php ใหม่
ถ้าคุณยังไม่ถนัดเรื่องนี้ ผมขอแนะนำให้เปลี่ยนจาก tab ไปใช้อย่างอื่นแทน
|
 |
 |
 |
 |
Date :
2012-12-07 14:15:01 |
By :
dreamlover |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ค่ะ จะได้เลิกหาวิธี แล้วไปหาทำวิธีอื่นแทน หรือถ้าใครมีวิธีใหนที่ทำได้จะแนะนำ ก็แนะนำหน่อยค่ะ ขอบคุณค่ะ
|
ประวัติการแก้ไข 2012-12-07 14:30:28
 |
 |
 |
 |
Date :
2012-12-07 14:27:59 |
By :
keewa |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (JavaScript)
$(function() {
$('a[data-toggle="tab"]').on('click', function(e) {
window.localStorage.setItem('activeTab', $(e.target).attr('href'));
});
var activeTab = window.localStorage.getItem('activeTab');
if (activeTab) {
$('#myTab a[href="' + activeTab + '"]').tab('show');
window.localStorage.removeItem("activeTab");
}
});
|
 |
 |
 |
 |
Date :
2017-10-23 12:16:32 |
By :
oyzceep |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|