การส่งค่าง่ายๆ ที่มันดัน ไม่ออก
โค้ดนี้ ผม ดูตัวอย่างมาจาก บทความการส่งค่า Array aJax
คือผมก็ส่งตามตัวอย่างอ่ะครับ มีประยุกต์นิดๆๆหน่อยๆๆ คือผมนำ Array มาทำเป็น String โดยการ Join("&") จากโค้ด นะครับ แล้วผมก็ส่งไป แต่พอทดสอบ ค่าที่ส่งกลับมาดันไม่ยอมแสดงเป็น String แต่ แสดงเป็นค่า แรก ค่าเดี้ยว
ตัวอย่างนะครับ ผม กรอก ข้อมูลเป็น array= {1,2,3,4,5} แล้วเอามาทำเป็น String มันจะได้เป็น 1&2&3&4&5 แล้วจึงส่งไปให้ Server และรอรับค่ากลับ โดยค่าที่ส่งกลับนั้น ความจิงจะต้องได้ 1&2&3&4&5 แต่มันได้เป็น 1 ตัวเดี้ยวเลย อ่ะครับ งง มากมาย ยังไงช่วยชี้แนะหน่อยนะครับ ขอบคุณครับ
ตัวอย่างโค้ด นะครับ
var qs = Array();
for(var i = 0 ; i < tds.length ; i++ )
{
qs[i] = tds[i].innerHTML;
}
var query = qs.join( '&' );
var req = Inint_AJAX();
req.onreadystatechange = function () {
if ( req.readyState == 4 && req.status == 200 ) {
alert(query+"===>"+ req.responseText ); //ค่าที่ได้ มันจะเป็น 1&2&3&4&5===> 1
};
};
req.open( "GET", "preview_grp.php?data=" + query , true );
req.send( null );
return false;
โค้ดส่วน PHP
<?php
$num = $_GET['data'] ;
echo $num ;
?>
คือผมก็ส่งตามตัวอย่างอ่ะครับ มีประยุกต์นิดๆๆหน่อยๆๆ คือผมนำ Array มาทำเป็น String โดยการ Join("&") จากโค้ด นะครับ แล้วผมก็ส่งไป แต่พอทดสอบ ค่าที่ส่งกลับมาดันไม่ยอมแสดงเป็น String แต่ แสดงเป็นค่า แรก ค่าเดี้ยว
ตัวอย่างนะครับ ผม กรอก ข้อมูลเป็น array= {1,2,3,4,5} แล้วเอามาทำเป็น String มันจะได้เป็น 1&2&3&4&5 แล้วจึงส่งไปให้ Server และรอรับค่ากลับ โดยค่าที่ส่งกลับนั้น ความจิงจะต้องได้ 1&2&3&4&5 แต่มันได้เป็น 1 ตัวเดี้ยวเลย อ่ะครับ งง มากมาย ยังไงช่วยชี้แนะหน่อยนะครับ ขอบคุณครับ
ตัวอย่างโค้ด นะครับ
var qs = Array();
for(var i = 0 ; i < tds.length ; i++ )
{
qs[i] = tds[i].innerHTML;
}
var query = qs.join( '&' );
var req = Inint_AJAX();
req.onreadystatechange = function () {
if ( req.readyState == 4 && req.status == 200 ) {
alert(query+"===>"+ req.responseText ); //ค่าที่ได้ มันจะเป็น 1&2&3&4&5===> 1
};
};
req.open( "GET", "preview_grp.php?data=" + query , true );
req.send( null );
return false;
โค้ดส่วน PHP
<?php
$num = $_GET['data'] ;
echo $num ;
?>
ลองพิจารณาผลลัพท์ที่ได้จากการ join นะ
query = 'tds1&tds2&tds3&tds4';
เมื่อส่งค่าไปจะเป็น data=tds1&tds2&tds3&tds4;
ผลลัพท์ เมื่อ $_GET ก็จะเป็น $_GET[data]=tds1
เหตุผล & เป็นตัวอักษรควบคุมของ query string ครับ ซึ่ง PHP ใช้สำหรับแยกข้อมูลออกจากกัน ดังนั้น ข้อมูลจะจบที่ & ตัวแรก
ทดลอง print_r($_GET); ดูเพื่อตรวจสอบค่าที่ส่งมา
แล้วผมใช้เป็น "," ได้อ่ะเปล่าครับ อาจาร์ย
แล้วอีกอย่างครับคือผม ส่งค่า Array ชุดนี้ไปให้ กับ Code.php ที่ทำหน้าที่สร้าง กราฟ โดข JPgraph อ่ะครับ แล้วให้ ส่งค่ากราฟ มาเป็น กราฟ อ่ะครับ
แต่มันไม่ยอมแสดงอะไรเลย อ่ะครับ วิธีนี้มันเป็นไปได้หรือเปล่าครับ
หน้า Index ส่ง Array ไป โดยใช้ Ajax ไปให้ Server Server สร้าง กราฟ แล้วส่งค่ากลับมาแสดงที่หน้า Index อ่ะครับ เป็นไปได้หรือเปล่ามีข้อแนะนำหรือเปล่าครับ ขอบคุณอีกครั้งครับ
อาจาร์ย
ขอบคุณครับมากมายครับ อาจาร์ย
var qs = Array();
for(var i = 0 ; i < tds.length ; i++ )
{
qs[i] = tds[i].innerHTML;
}
var query = qs.join( ',' );
var req = Inint_AJAX();
req.onreadystatechange = function () {
if ( req.readyState == 4 && req.status == 200 ) {
//alert(query+"===>"+ req.responseText );
document.getElementById("test").innerHTML = req.responseText;
};
};
req.open( "GET", "preview_grp.php?data=" + query , true );
req.send( null );
return false;
โค้ด กราฟ ครับ
<?php
include ("Graph/jpgraph.php");
include ("Graph/jpgraph_line.php");
$num = $_GET['data'] ;
$ydata = explode(" ",$num);
$ydata2 = array(1,19,15,7,22,14,5,9,21,19);
// Create the graph. These two calls are always required
$graph = new Graph(300,200,"auto");
$graph->SetScale("textlin",0,0);
$graph->yaxis->scale->SetGrace(20);
// Create the linear plot
$lineplot=new LinePlot($ydata);
$lineplot2=new LinePlot($ydata2);
// Add the plot to the graph
$graph->Add($lineplot);
$graph->Add($lineplot2);
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Example 4");
$graph->xaxis->title->Set("X-title");
$graph->yaxis->title->Set("Y-title");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$lineplot->SetColor("blue");
$lineplot->SetWeight(2);
$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);
$graph->yaxis->SetColor("red");
$graph->yaxis->SetWeight(2);
$graph->SetShadow();
// Display the graph
$graph->Stroke();
?>
ค่าที่ได้มันแสดงเป็นแบบนี้อ่ะครับ งงเลย ?PNG
ช่วยด้วยครับไม่แน่ใจเหมือนกัน ว่าวิธีนี้มันได้หรือเปล่า หรือ เขียนไม่ออกเอง ก็ไม่รู้ครับ อิอิ