PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

สอบถามเรื่องการส่งค่าค่ะ

สอบถามเรื่องการส่งค่าค่ะ
อยากถามเรื่องการส่งค่า เช่น ?idJob=<? echo $rowname['idJob'];?>

แต่จาก template ตัวอย่าง http://www.templatemo.com/preview/templatemo_412_authentic

มันเป็น <a href="#templatemo-page2"></a>

อยากทราบว่า จะส่งค่าไปยังไง เพราะมันไม่ไป

ลองส่งแบบ <a href="#templatemo-page7?idJob=<? echo $rowname['idJob'];?>"><? echo $rowname['nameJob']; ?></a>   มันนิ่งค่ะ

โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 10-10-2014 เวลา: 12:04:49

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 15
 ขอบคุณมากนะคะ

โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 20-10-2014 เวลา: 17:27:32
 ความคิดเห็นที่ 14
  พอเข้าใจแล้วว่าทำไมไม่ได้

การดึงข้อมูลด้วย ajax จะไม่ใช้การส่งค่าแบบโดยตรงไปที่ url แต่เป็นการส่งค่าแบบในลักษณะ background
แนวๆ ทำงานเบื้องหลัง และ url จะไม่มีการส่งค่าไป ที่เราเห็นว่า url เปลี่ยนเพราะรูปบแบการใช้งาน #  หรือที่เรียกว่า  hash

วิธีใช้งานแบบ ajax เราต้องสร้างไฟล์ สำหรับรับค่าและแสดงข้อมูลขึ้นมาไฟล์หนึ่ง เช่น showdata.php

ตัวอย่างโค้ดไฟล์

<?php
session_start();
header("Content-type:text/html; charset=UTF-8");     
header("Cache-Control: no-store, no-cache, must-revalidate");    
header("Cache-Control: post-check=0, pre-check=0", false);    
// ส่วนของการติดต่อฐานข้อมูล
$link=mysql_connect("localhost","root","test");  
mysql_select_db("test");  

if($_GET['dataVal_send']!=""){
    $data = $_GET["dataVal_send"];
    $sqlJob="SELECT * FROM job WHERE idJob = '$data'";
    $qJob=mysql_query($sqlJob);
    while($row=mysql_fetch_array($qJob)){ 
        echo "<h3>".$row['nameJob']."</h3>";
        echo "<br/><b>รายละเอียดงาน  :  </b>";
    }     
}
?>  



ไฟล์ด้านบนเราจะใช้รับค่าที่ส่งไป และก็แสดงค่าพร้อมส่งกลับมาใช้งาน

สำหรับส่วนที่จะแสดงข้อมูล เราจะใช้ div และก็กำหนด id ให้มัน เพื่ออ้างอิง ถ้าตามโค้ดตัวอย่างที่ให้มา ก็จะได้เป็น

<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>
<div id="place_show"></div>
</div>
</section>


จะเห็นว่าเรากำหนด div และให้ id ชื่อ place_show เราสร้างตรงนี้ไว้เพื่อรับค่า ข้อมูลที่ได้จากไฟล์ showdata.php

ทีนี้มาดูการส่งค่าแบบ ajax ด้วย jquery 

ดูคำอธิบายในโค้ดได้เลย

$(".nav a").on('click',function(e){
        var dataVal = $(this).attr("data-value");
     $.get("showdata.php",{  // ส่งค่าข้อมูลแบบ get ตัวที่รับใน php ก็จะใช้เป็น $_GET['dataVal']
         dataVal_send:dataVal  // ส่งค่าตัวเปรชื่อ dataVal_send มีค่าเท่ากับค่า dataVal
     },function(data){ // คืนค่าข้อมูลกลับมาในตัวแปร data
        // การทำงานคือ ส่งค่า dataVal_send ไปที่ไฟล์ showdata.php 
         // ในไฟล์ showdata.php ต้องรับด้วยตัวแปร $_GET['dataVal_send']
         // เมื่อทำงานเสร็จแล้ว ค่าจากไฟล์ showdata.php ที่แสดงด้วยคำสั่ง echo
         // จะส่งค่านั้นกลับมาในตัวแปร data ตรงโค้ด function(data)
         // ทีนี้เราจะเอาค่าที่ได้ไปแสดง ใน div id = place_show โดยใช้ jquery
         // ก็จะได้เป็น
         $("div#place_show").html(data); // เอาข้อมูลที่ส่งกลับมา มาแสดงใน div
//         alert(dataVal);  // dataVal ค่าตามตัวแปรด้านบน
     });
 });


หลักการที่อธิบายด้านบนคือการใช้งาน ajax ถ้าเข้าใจแล้วก็สามารถนำไปประยุกต์ได้เยอะขึ้น หากยังไม่เข้าใจดี ต้องพยายามศึกษา
เพราะมีความสำคัญมาก






โดย:  Ninenik IP: 124.122.164.xxx วันที่: 20-10-2014
 ความคิดเห็นที่ 13
โค้ดหน้า index.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'";
		$qJob=mysql_query($sqlJob);
				while($row=mysql_fetch_array($qJob)){ 
				
 
		echo "<h3>".$row['nameJob']."</h3>";
		echo "<br/><b>รายละเอียดงาน  :  </b>";
} 
?>
</div>
</section>

โค้ดหน้า templatemo_script.js

    $(".nav a").on('click',function(e){
            var dataVal = $(this).attr("data-value");
         $.get("index.php",{  // ส่งค่าข้อมูลแบบ get ตัวที่รับใน php ก็จะใช้เป็น $_GET['dataVal']
             dataVal_send:dataVal  // ส่งค่าตัวเปรชื่อ dataVal_send มีค่าเท่ากับค่า dataVal
         },function(data){ // คืนค่าข้อมูลกลับมาในตัวแปร data
            
             alert(dataVal);  // dataVal ค่าตามตัวแปรด้านบน
         });
     });





โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 20-10-2014 เวลา: 11:15:38
 ความคิดเห็นที่ 12
ขึ้นอยู่กับว่าเราเอาค่าไปทำอะไร และรูปแบบโค้ดที่ใช้งาน 
เพราะถ้าเขียนโค้ดผิด แนะนำไปก็ไม่ได้อยู่ดี ลองเอาโค้ดที่เราใช้งานแบบเต็มมาแสดงดู เผื่อแนะนำได้


โดย:  Ninenik IP: 110.169.206.xxx วันที่: 20-10-2014
 ความคิดเห็นที่ 11


ขึ้นค่า alert(dataVal); ค่ะ แต่ไม่ขึ้นค่า get ในหน้า index.php#templatemo-page8  อยู่ดีค่ะ

โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 20-10-2014 เวลา: 09:15:16
 ความคิดเห็นที่ 10
ถ้าค่าขึ้น แสดงว่าตัวแปร dataVal ก็พร้อมใช้งานแล้ว
ทีนี้ก็มาดูว่าเราจะทำอะไรกับค่าตัวแปรนี้  ถ้าจะส่งค่าตัวแปรเข้าไปในไฟล์ ก็ทำตามโค้ด ที่แนะนำในความเห็นที่ 8 
คือการส่งค่าไป 

เช่น สมมติไฟล์ test.php ไฟล์ รับค่าทดสอบว่าส่งค่าไปไหม

<?php
echo $_GET['dataVal_send'];
?>


การส่งค่าไป เช่น

     $("#btn").click(function(){
         var dataVal=2;  // สมมติค่า
         $.get("test.php",{  // ส่งค่าข้อมูลแบบ get ตัวที่รับใน php ก็จะใช้เป็น $_GET['dataVal']
             dataVal_send:dataVal  // ส่งค่าตัวเปรชื่อ dataVal_send มีค่าเท่ากับค่า dataVal
         },function(data){ // คืนค่าข้อมูลกลับมาในตัวแปร data
             alert(data);  // data คือข้อมูลที่ได้จากการ echo ในไฟล์ test.php
             alert(dataVal);  // dataVal ค่าตามตัวแปรด้านบน
         });
     });




โดย:  Ninenik IP: 1.46.209.xxx วันที่: 18-10-2014
 ความคิดเห็นที่ 9
Alert มีค่าขึ้นค่ะ

โดย:  Saranya2532 IP: 1.46.11.xxx วันที่: 18-10-2014 เวลา: 19:11:27
 ความคิดเห็นที่ 8
ลอง alet() ค่าตอนกำหนดก่อนว่ามีค่าไหม เมื่อคลิกแต่ละแท็บเมนู

        $(".nav a").on('click',function(e){
            var dataVal=$(this).attr("data-value");
            alert(dataVal);
           ...........
           ......


ส่วนการส่งค่าเข้าไป จะต้องมีการกำหนด data หรือชุดข้อมูลที่ต้องการส่งด้วย 

$.get("index.php",{
   dataVal:dataVal,
   aaaa:aaaval,
   bbbb:bbbVal
},function(data){ //data จะเก็บค่าที่ return กลับมา
alert("Data is "+dataVal); //แสดงข้อความใน Alert box
});


โดย:  Ninenik IP: 1.46.209.xxx วันที่: 18-10-2014
 ความคิดเห็นที่ 7
$.get("index.php", function(data){ //data จะเก็บค่าที่ return กลับมา
alert("Data is "+dataVal); //แสดงข้อความใน Alert box
});

ขึ้นแต่ค่า alert อ่ะค่ะ  ค่า get ไม่เห็นส่งไปเลย ต้องทำยังไงค่ะ


โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 18-10-2014 เวลา: 14:57:25
 ความคิดเห็นที่ 6
ถ้าหมายถึงหน้านี้

http://www.templatemo.com/templates/templatemo_412_authentic/

อันนี้เขาใช้เป็น javascript การส่งค่า ถ้าจะใช้ slide ก็ต้องส่งแบบ javascript ใส่เข้าไปใน url ไม่ได้

และรูปแบบการแสดงก็เป็นการเลื่อน slide section ส่วนของข้อมูล โดยไม่มีการเปลี่ยนหน้า หากจะเอาค่าที่ส่งไปใช้ ก็ต้อง

มี ajax รองรับ   

ลองดูส่วนสำหรับรับค่าที่ส่งมาตอนคลิกเลือกแต่ละเมนู ในไฟล์ templatemo_script.js

เพิ่มการรับค่า แบบนี้ดู

        $(".nav a").on('click',function(e){
            var dataVal=$(this).attr("data-value");
            console.log(dataVal);
           ...........
           ......


ส่วนการส่งค่าไปกับปุ่มลิ้งค์ ให้ใส่เป็นแบบนี้แทน

<ul class="nav navbar-nav">
                          <li class="active"><a data-value="1" href="#templatemo-page1"><i class="fa fa-home"></i>Home</a></li>
                          <li><a data-value="2" href="#templatemo-page2"><i class="fa fa-video-camera"></i>Videos</a></li>
......


ใช้ data-value กำหนดค่าที่ต้องการส่งไปพร้อมตอนกดลิงค์เมนู


โดย:  Ninenik IP: 110.169.240.xxx วันที่: 13-10-2014
 ความคิดเห็นที่ 5
http://www.templatemo.com/preview/templatemo_412_authentic  คือหนูดาวน์โหลดไฟล์ template นี้มา
แล้วลองมีการส่งค่า idJob=1 ไป

 <div class="navbar-collapse collapse">
                        <ul class="nav navbar-nav">
<li><a href="?idJob=1#templatemo-page3">test</a>  </li>
                        </ul>
</div>
ก็ไม่สามารถเลื่อนไปหน้าตามต้องการได้ค่ะ


โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 13-10-2014 เวลา: 10:31:04
 ความคิดเห็นที่ 4
อ่อ ไม่ใช่ค่ะ หนูใส่ค่า 
<a href="?idJob=<? echo $rowname['idJob'];?>#templatemo-page7"><? echo $rowname['nameJob']; ?></a>
ที่มันขึ้น <span> พอดีหนูใช้ตัว commentจาก http://www.ninenik.com/ เพื่อเน้นค่าให้เห็นโค้ดส่วนนี้ชัดๆ เลยใส่สีแดงเพื่อเน้น ไม่คิดว่า จะขึ้นเป็นโค้ดแบบเมื่อกี้ค่ะ


โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 13-10-2014 เวลา: 10:20:52
 ความคิดเห็นที่ 3
แบบนี้ใส่ผิดหรือเปล่า

<a href="<span style="color:#ff0000;">?idJob=<? echo $rowname['idJob'];?>#templatemo-page7</span>"><? echo $rowname['nameJob']; ?></a> 
ทำไมมีแท็ก span อยู่ในลิ้งค์ 

<a href="#">test</a>


โดย:  Ninenik IP: 110.169.240.xxx วันที่: 13-10-2014
 ความคิดเห็นที่ 2
ขอบคุณค่ะ ค่ามันก็ขึ้นนะคะเป็น localhost/test/index.php?idJob=1#templatemo-page7  แต่slide มันไม่เลื่อนตาม

<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="?idJob=<? echo $rowname['idJob'];?>#templatemo-page7"><? echo $rowname['nameJob']; ?></a>  </li>
                    <? } ?>
                </ul>
</div>

แต่เดิมๆถ้าเป็นแบบ ไม่มีการส่งค่า ก็เลื่อนให้ปกติ  อย่างนี้จะมีวิธีแก้ยังไงค่ะ
<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-page7"><? echo $rowname['nameJob']; ?></a>  </li>
                    <? } ?>
                </ul>
				</div>


โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 13-10-2014 เวลา: 10:00:47
 ความคิดเห็นที่ 1
ใส่ผิดตำแหน่ง # จะต้องใช้หลังสุด  เช่น 

<a href="data.php?a=1&b=2&c=3#page2">Link</a>


ดังนั้นด้านบนที่ ถามต้องเปลี่ยนเป็น 

<a href="?idJob=<? echo $rowname['idJob'];?>#templatemo-page7"><? echo $rowname['nameJob']; ?></a>


โดย:  Ninenik IP: 1.47.145.xxx วันที่: 10-10-2014