ขอถามเรื่องการส่งค่าตัวแปรที่ซ้ำกันของjavascriptหน่อยครับ HomeForumขอถามเรื่องการส่งค่าตัวแปรที่ซ้ำกันของjavascriptหน่อยครับ Mojo Mojo คือผมยังไม่เข้าใจว่าจะเช็คยังไงเวลาที่มีการส่งค่าของตัวเเปรตัวเดิมมาอีกครั้ง แบบว่าต้องการให้ส่งมาได้แค่ครั้งถ้าส่งมาอีกครั้งก็จะ alert เตือน กรกฎ วิริยะ แนวคิดการตรวจสอบค่าซ้ำ ไม่ยากครับ ทุกภาษา ใช้วิธีเดียวกันหมด /* ตัวแปรสำหรับเก็บค่าเดิม */ var old_data = ''; /* ตัวแปรสำหรับรับค่าที่ส่งมา */ var data = 'xxx'; /* ตรวจสอบว่าเหมือนเดิมหรือไม่ */ if (data != old_data) { /* ค่าที่ส่งมาไม่เหมือนเดิม เก็บค่าไว่ตรวจสอบในคราวต่อไป */ old_data = data; /* ทำงานอื่นที่ต้องการต่อไป */ } else { alert('คุณส่งค่านี้มาแล้ว') } Mojo Mojo ขอบคุณ ครับ isumijang แล้วถ้าตรวจสอบตัวแปลตัวเดียวที่ส่งค่าแบบวนลูปมาทีเดียวหลาย ๆ ค่า จะตรวจสอบว่าค่าที่ส่งมามีตัวไหนซ้ำกันบ้างล่ะค่ะ เช่น $num[] ส่งค่า ("33","11","10","12","12","33") ส่งค่ามาแบบ Array วนลูปส่งมาด้วย เราจะมีวิธีเช็คยังไงค่ะ กรกฎ วิริยะ http://www.php.net/manual/en/function.array-unique.php isumijang ลองแล้วค่ะแต่มันไม่ได้ ตัวแปรที่ส่งมาคือ $_POST['LanNum'][$assetnum]; ซึ่งวนลูปส่งมาหน้ารับข้อมูล แล้วต้องการที่จะตรวจสอบ $_POST['LanNum'][$assetnum]; ว่า ส่งค่าซ้ำมาหรือป่าว แล้วถ้าส่งค่าซ้ำมาก็จะแสดง ค่าที่ซ้ำออกมาด้วยค่ะ ค่าที่ได้คือ <?PHP include "config.inc.php"; $sql_lan=" SELECT * FROM asset_lan GROUP BY assetnum"; $rs_lan= mysql_query($sql_lan) or die ("Error1".mysql_error()); $no=1; while($row_lan=mysql_fetch_row($rs_lan)){ $assetnum=$row_lan['0']; $lannum=$row_lan['1']; $IDLan=$_POST['LanNum'][$assetnum]; $input = array($IDLan); $result = array_unique($input); print_r($result); $no++; } ?> ผลที่ออกมา Array ( [0] => 33 ) Array ( [0] => 33 ) Array ( [0] => 129 ) Array ( [0] => 18 ) Array ( [0] => 101 ) Array ( [0] => 64 ) Array ( [0] => 147 ) Array ( [0] => 58 ) Array ( [0] => 142 ) Array ( [0] => 107 ) Array ( [0] => 106 ) แล้วเอามาเช็คยังไงล่ะค่ะว่ามันซ้ำ และให้แสดงค่าที่ซ้ำออกมา กรกฎ วิริยะ http://www.goragod.com/...A3%E0%B8%A2%E0%B9%8C ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
var old_data = '';
/* ตัวแปรสำหรับรับค่าที่ส่งมา */
var data = 'xxx';
/* ตรวจสอบว่าเหมือนเดิมหรือไม่ */
if (data != old_data) {
/* ค่าที่ส่งมาไม่เหมือนเดิม เก็บค่าไว่ตรวจสอบในคราวต่อไป */
old_data = data;
/* ทำงานอื่นที่ต้องการต่อไป */
} else {
alert('คุณส่งค่านี้มาแล้ว')
}
แล้วถ้าตรวจสอบตัวแปลตัวเดียวที่ส่งค่าแบบวนลูปมาทีเดียวหลาย ๆ ค่า จะตรวจสอบว่าค่าที่ส่งมามีตัวไหนซ้ำกันบ้างล่ะค่ะ
เช่น
$num[] ส่งค่า ("33","11","10","12","12","33")
ส่งค่ามาแบบ Array วนลูปส่งมาด้วย เราจะมีวิธีเช็คยังไงค่ะ
ลองแล้วค่ะแต่มันไม่ได้
ตัวแปรที่ส่งมาคือ $_POST['LanNum'][$assetnum]; ซึ่งวนลูปส่งมาหน้ารับข้อมูล
แล้วต้องการที่จะตรวจสอบ $_POST['LanNum'][$assetnum]; ว่า ส่งค่าซ้ำมาหรือป่าว แล้วถ้าส่งค่าซ้ำมาก็จะแสดง ค่าที่ซ้ำออกมาด้วยค่ะ
ค่าที่ได้คือ
<?PHP
include "config.inc.php";
$sql_lan=" SELECT * FROM asset_lan GROUP BY assetnum";
$rs_lan= mysql_query($sql_lan) or die ("Error1".mysql_error());
$no=1;
while($row_lan=mysql_fetch_row($rs_lan)){
$assetnum=$row_lan['0'];
$lannum=$row_lan['1'];
$IDLan=$_POST['LanNum'][$assetnum];
$input = array($IDLan);
$result = array_unique($input);
print_r($result);
$no++;
}
?>
ผลที่ออกมา
Array ( [0] => 33 ) Array ( [0] => 33 ) Array ( [0] => 129 ) Array ( [0] => 18 ) Array ( [0] => 101 ) Array ( [0] => 64 ) Array ( [0] => 147 ) Array ( [0] => 58 ) Array ( [0] => 142 ) Array ( [0] => 107 ) Array ( [0] => 106 )
แล้วเอามาเช็คยังไงล่ะค่ะว่ามันซ้ำ
และให้แสดงค่าที่ซ้ำออกมา