A-AA+then

การส่งค่าง่ายๆ ที่มันดัน ไม่ออก

2,428
โค้ดนี้ ผม ดูตัวอย่างมาจาก บทความการส่งค่า 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 = tds.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 ;
?>

3 ความคิดเห็น

 555 สมควร

ลองพิจารณาผลลัพท์ที่ได้จากการ join นะ

query = 'tds1&tds2&tds3&tds4';

เมื่อส่งค่าไปจะเป็น data=tds1&tds2&tds3&tds4;

ผลลัพท์ เมื่อ $_GET ก็จะเป็น $_GET[data]=tds1

เหตุผล & เป็นตัวอักษรควบคุมของ query string ครับ ซึ่ง PHP ใช้สำหรับแยกข้อมูลออกจากกัน ดังนั้น ข้อมูลจะจบที่ & ตัวแรก

ทดลอง print_r($_GET); ดูเพื่อตรวจสอบค่าที่ส่งมา
1

นั้นไง อิอิ แหะๆๆๆ ไม่รู้อ่ะครับ ได้ความรู้ เลย งานนี้
แล้วผมใช้เป็น "," ได้อ่ะเปล่าครับ อาจาร์ย


แล้วอีกอย่างครับคือผม ส่งค่า Array ชุดนี้ไปให้ กับ Code.php ที่ทำหน้าที่สร้าง กราฟ โดข JPgraph อ่ะครับ แล้วให้ ส่งค่ากราฟ มาเป็น กราฟ อ่ะครับ
แต่มันไม่ยอมแสดงอะไรเลย อ่ะครับ วิธีนี้มันเป็นไปได้หรือเปล่าครับ
หน้า Index ส่ง Array ไป โดยใช้ Ajax ไปให้ Server Server สร้าง กราฟ แล้วส่งค่ากลับมาแสดงที่หน้า Index อ่ะครับ เป็นไปได้หรือเปล่ามีข้อแนะนำหรือเปล่าครับ  ขอบคุณอีกครั้งครับ
อาจาร์ย

ขอบคุณครับมากมายครับ  อาจาร์ย
2

โค้ด Ajax ครับ
 var qs = Array();
    for(var i = 0 ; i < tds.length ; i++ )
    {
          qs = tds.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 
ช่วยด้วยครับไม่แน่ใจเหมือนกัน ว่าวิธีนี้มันได้หรือเปล่า หรือ เขียนไม่ออกเอง ก็ไม่รู้ครับ อิอิ
3
^