|
|
|
ต้องการ นำค่าจาก Javascript มาใช้ในส่วนของ php ต้องดึงค่ายังไงค่ะ |
|
|
|
|
|
|
|
Ajax ครับ ลอง search ดูครับ
|
|
|
|
|
Date :
2014-10-13 14:55:32 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือไม่มีความรู้ด้าน Ajax เลยค่ะ พอจะแนะนำได้ไม๊ค่ะ
|
|
|
|
|
Date :
2014-10-13 15:29:48 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เข้าใจว่าต้องการจะส่ง parameter ไปแบบ anchor tag หรอครับ
<a href="url.php?dataVal=12xxx">คลิก</a>
ประมาณนี้ปะครับ ผมไม่ค่อยเข้าใจคำถาม
|
|
|
|
|
Date :
2014-10-13 15:48:06 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากเริ่มแรกนะค่ะ คือ มีเมนูที่พอกดแล้วจะส่งค่าไป หน้า xx.js
<li class="active"><a data-value="5" href="#templatemo-page7">พนักงานขับรถ</a></li>
หน้า xx.js
$(".nav a").on('click',function(e){
var dataVal=$(this).attr("data-value");
console.log(dataVal);
//alert(dataVal); ค่าที่ได้ คือ 5
}
แล้วต้องการได้ค่าจาก dataVal มาใช้ในหน้า job.php คือไม่ทราบว่าจะ GET ค่าในหน้า xx.js มายังไงอ่ะค่ะ
Code (PHP)
<?
$sqlJob="select * from job where idJob='$_GET[dataVal]' and status='1'";
$qJob=mysql_query($sqlJob);
while($row=mysql_fetch_array($qJob)){
echo "<h3 class='title'>".$row['nameJob']."</h3>";
}
?>
|
|
|
|
|
Date :
2014-10-13 16:05:41 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่านจากคำถามแล้วไม่แน่ใจว่า จขกท ต้องการแบบไหนแน่
ก่อนอื่นขออธิบายหลักการของ Server กับ client ซักนิดนะครับ
Server (PHP) จะทำการ generate data ออกมาในรูป HTML + javascript ( ให้กับ Browser ของ เครื่อง client แบบปกติ)
Client Browser ( IE, Chrome, FF, WF etc.) จะทำการแปล HTML+javascript แสดงเป็นผล ให้ผู้ัใช้
เมื่อ Server generate HTML ส่งให้กับ Client แล้วก็จะตัดการติดต่อ กับ Client
(อาจจะมีการเก็บค่าบางอย่าง เพื่อใช้ในการติดต่อภายหลัง เช่น SESSION COOKIE )
ดังนั้น HTML + Javascript จะทำงานบน เครื่อง Client ซึ่งอยู่คนละเครืองกับ Server
ถ้าต้องการ ข้อมูล เพิ่มเติม จาก Server (PHP) ก็จำเป็นต้องทำการ Request ไปขอข้อมูลจาก Server ใหม่ อีกครั้ง
โดยกระบวนการ request มีอยู่ 2 อย่าง
1 ร้องขอการแสดงผลใหม่ทั้งหน้าเพจ
2 ร้องขอและเปลี่ยนข้อมูลเฉพาะบางส่วนของเพจ ซึ่งกระบวนการข้อที่ 2 นี้เรียกว่า AJAX
ก็ต้องถามจขกท ต่อละครับว่าต้องการแบบไหนครับ
|
|
|
|
|
Date :
2014-10-13 16:11:08 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (JavaScript)
$(".nav a").on('click',function(e){
var dataVal=$(this).attr("data-value");
console.log(dataVal);
//alert(dataVal); ค่าที่ได้ คือ 5
$.ajax({ url: 'job.php', type: 'GET', data: { dataVal: dataVal }}).done( function(msg){
alert( msg );
});
}
|
ประวัติการแก้ไข 2014-10-13 16:15:16
|
|
|
|
Date :
2014-10-13 16:15:03 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ
|
|
|
|
|
Date :
2014-10-13 18:05:09 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเขียน ajax ไม่เป็น แนะนำ IFrame เลยครับ ใช้รีเฟรช onkeyup-down
*** กรณีงานที่ไม่ต้องการความเนียนนะ เอาแค่ใช้งานได้พอ
|
|
|
|
|
Date :
2014-10-14 02:03:21 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษค่ะ พอดีลองแล้วมันไม่ขึ้นค่าให้อ่ะค่ะ ตามโค้ดนี้
Code (JavaScript)
$(".nav a").on('click',function(e){
var dataVal=$(this).attr("data-value");
console.log(dataVal);
//alert(dataVal);
$.ajax({ url: 'index.php', type: 'GET', data: { dataVal: dataVal }}).done( function(msg){
alert( msg );
});
});
ขึ้นแต่ค่า alert แต่ค่า get ไม่ขึ้น
Code (PHP)
<? echo $_GET['dataVal'];?>
|
|
|
|
|
Date :
2014-10-18 15:39:00 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไฟล์ index,php ไม่แสดง อะไรเหรอครับ
ลอง
<?php echo 'TEST GET=', print_r($_GET, true); ?>
หรื่อไม่ก็ลองเปลี่ยน done เป็น success แบบมันหลายเวอร์ชั่นจนงงอะครับ
ผมเคยใช้ $('.class').on( 'click', '' ,'', function(e){});
หรือ $('.class').click( function(e){});
กับ $.ajax().done();
สำหรับ $('.class').on('click', fuction(){})
อาจเวอร์ชันเดียวกันกับ $.ajax().success( function (){});
ก็ได้มั้งครับ
|
ประวัติการแก้ไข 2014-10-18 17:04:18 2014-10-18 17:08:48 2014-10-18 17:10:35
|
|
|
|
Date :
2014-10-18 17:00:04 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="active"><a data-value="5" href="#templatemo-page7">พนักงานขับรถ</a></li>
ก็แบบว่า พอกดที่ลิงค์ <a> มันก็วิ่งไปหน้า templatemo-page7 แล้ว ไม่ทันได้ส่งค่าไปให้หน้า index.php หรอกครับ
เติมบรรทัดนี้ลงไปครับ e.preventDefault();
Code (PHP)
$(".nav a").on('click',function(e){
e.preventDefault();
var dataVal=$(this).attr("data-value");
console.log(dataVal);
//alert(dataVal);
$.ajax({ url: 'index.php', type: 'GET', data: { dataVal: dataVal }}).done( function(msg){
alert( msg );
});
});
ลองดูครับ
|
|
|
|
|
Date :
2014-10-18 21:16:08 |
By :
cowboycnx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษด้วยครับ ลืมมองไปว่าที่อยู่ใน href ไม่ใช่ไฟล์ แต่เป็นแค่แองเคอร์
Code (PHP)
$(".nav a").on('click',function(e){
e.preventDefault();
var dataVal=$(this).data("value");
console.log(dataVal);
//alert(dataVal);
$.get('index.php', { dataVal: dataVal },function(msg){
alert( msg );
});
});
ลองดูน่ะครับ
|
ประวัติการแก้ไข 2014-10-18 21:21:40
|
|
|
|
Date :
2014-10-18 21:20:05 |
By :
cowboycnx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไม่ได้อ่ะคะ
โค้ดหน้านี้หนุได้จาก template
http://www.templatemo.com/preview/templatemo_412_authentic
มันเป็น <a href="#templatemo-page2"></a>
คือโค้ดทุกอย่างมันอยู่ในหน้า index.php แบ่งเป็น section เอาค่ะ
โค้ดที่พี่ๆแนะนำมา หนูก็ไว้หน้า templatemo_script.js ค่ะ
Code (PHP)
<div class="col-sm-4 col-md-4">
<h3>ตำแหน่งงานที่รับสมัคร</h3>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<? $sqlname="SELECT * FROM `job` where status!='0' order by idJob DESC";
$queryname=mysql_query($sqlname);
while($rowname=mysql_fetch_array($queryname)) {
?>
<li><a href="#templatemo-page8" data-value="<? echo $rowname['idJob'];?>"><? echo $rowname['nameJob']; ?></a> </li>
<? } ?>
</ul>
</div>
</div>
เมื่อมีการคลิกที่ตำแหน่งงาน <a href="#templatemo-page8" data-value='????'></a>
ก็จะโชว์รายละเอียดตำแหน่งงานที่คลิก ในหน้า #templatemo-page8 (หน้าเดิม) ทางด้านขวามือ
Code (PHP)
<section id="templatemo-page8-text" class="inactive">
<div class="col-sm-4 col-md-4">
<h3>ตำแหน่งงานที่รับสมัคร</h3>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<? $sqlname="SELECT * FROM `job` where status!='0' order by idJob DESC";
$queryname=mysql_query($sqlname);
while($rowname=mysql_fetch_array($queryname)) {
?>
<li><a href="#templatemo-page8" data-value="<? echo $rowname['idJob'];?>"><? echo $rowname['nameJob']; ?></a> </li>
<? } ?>
</ul>
</div>
</div>
<div class="col-sm-8 col-md-8">
<h2 class="text-center">สมัครงาน</h2>
<?
$data = $_GET["dataVal"];
$sqlJob="SELECT * FROM job WHERE idJob = '$data'";
echo "<p>".$sqlJob."</p>";
$qJob=mysql_query($sqlJob);
while($row=mysql_fetch_array($qJob)){
echo "<h3>".$row['nameJob']."</h3>";
echo "<br/><b>รายละเอียดงาน : </b>";
}
?>
</div>
</section>
|
ประวัติการแก้ไข 2014-10-20 11:06:43 2014-10-20 11:07:22 2014-10-20 11:08:12 2014-10-20 11:09:30
|
|
|
|
Date :
2014-10-20 11:06:15 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอางี้นะ ครับ ajax มันให้ดึงข้อมูลเป็นส่วนๆทำไมต้องทำให้มันดึงแบบนั้นด้วยครับ
ทำไมไม่ทำ ประมาน นีี้ ถ้าพูดอะไรผิดไปขอโทษ นะครับ ผม ไม่เข้าใจความต้องการกับ code เท่าไหร่
page main
Code (PHP)
$(".nav a").click(function(e){
e.preventDefault();
var dataVal=$(this).data("value");
console.log(dataVal);
//alert(dataVal);
$.get('getDetail.php', { dataVal: dataVal },function(msg){
$('#detail').html( msg );
});
});
<ui class="nav">
<li><a>a1<a/></li>
<li><a>a2<a/></li>
<ul>
<div class="col-sm-8 col-md-8" id="detail">
</div>
page detail
Code (PHP)
print_r($_REQUEST)
|
ประวัติการแก้ไข 2014-10-20 11:46:50 2014-10-20 11:47:01 2014-10-20 12:09:05
|
|
|
|
Date :
2014-10-20 11:42:42 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เนื่องจากยิ่งอ่านแล้วยิ่งงงนะครับ ต้อขอโทษด้วย ก็ลองเอาโค๊ดตัวอย่างนี้ไปศึกษาการใช้งานดูนะครับ
เพื่อจะเห็น ไอเดีย ในการเขียนโค๊ดด้วยตัวเองได้
index.php
Code (PHP)
<?php
if(isset($_REQUEST['dataVal'])){
// ส่วนการรับข้อมูลแล้ว แสดงผลออกไปให้ กับคำสั่ง $.ajax();
echo 'Response DataValue = ' , $_REQUEST['dataVal']; exit;
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<script src="jquery-2.1.1.min.js" ></script>
<script language="javascript">
$(document).ready(function(e) {
$(".nav a").on('click',function(e){
var dataVal=$(this).attr("data-value");
if(confirm(dataVal)){
$.ajax({ url: 'index.php', type: 'GET', data: { dataVal: dataVal }}).done( function(msg){
alert( msg );
});
}
});
});
</script>
<body>
<div class="nav">
<a data-value="showdata">ShowData</a>
</div>
</body>
</html>
|
ประวัติการแก้ไข 2014-10-20 13:15:41
|
|
|
|
Date :
2014-10-20 13:09:06 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วค่ะ ขอบคุณทุกๆท่านมากนะคะ
|
|
|
|
|
Date :
2014-10-20 17:28:25 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|