|
|
|
ผมจะส่งค่าด้วย ajaxcall ครับ แต่มันไม่ส่ง อันนี้ผมงงมากเลย ผมไม่เข้าใจช่วยผมหน่อยน่ะครับ |
|
|
|
|
|
|
|
Code (PHP)
<script src="phpmydream/ajax/framework.js"></script>
<script>
function ajaxCall() {
var data = getFormData("form1");
var URL = "add_msg.php";
ajaxLoad('post', URL, data, null);
document.getElementById('msg').value = "";
}
function exitChatroom() {
if(!confirm('ออกจากห้องสนทนา ?')) {
return;
}
var f = document.getElementById('form1');
f.action = 'exit_chatroom.php';
f.submit();
}
//ฟังก์ชันสำหรับตรวจสอบว่าคีย์ที่ผู้ใช้กดเป็นปุ่ม <Enter> หรือไม่
//หากใช่ให้ส่งข้อความออกไปเหมือนการคลิกที่ปุ่ม
function isPressEnter(event) {
if(event.keyCode == 13) {
ajaxCall();
return false;
}
}
</script>
// ข้างบนเป็นฟั่งชั่น Ajax
<form method="post" name="form1" id="form1" action="">
<input name="msg" type="text" id="msg" size="120" onKeyPress="return isPressEnter(event)">
<input type="button" name="button1" value="ส่งข้อความ" onClick="ajaxCall()">
<input type="button" name="button2" value="ออกจากระบบ" onClick="exitChatroom()">
// อันนี้เป็น input
//ข้างล่างนี้เป็นหน้า add_msg.php
Code (PHP)
<?
session_start();
include ("include/function.php");
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
$username = $_SESSION['name'];
$msa = $_POST['msg'];
echo $msa;
$name = iconv("utf-8","tis-620",$username);
$msg = trim($_POST['msg']);
$msg = iconv("utf-8","tis-620",$msg);
if(empty($msg) || has_rudeword($msg)){
exit;
}
my_connect();
//ตรวจสอบว่าชื่อยังอยู่ในระบบสนทนาหรือไม่ ถ้าไม่ ก้อให้ กลับไปเริ่มต้นใหม่
$sql = "SELECT COUNT(*) FROM chatter WHERE name = '$name';";
$result = mysql_query($sql);
if(mysql_result($result,0,0) == 0){
header("Location:chatroom.php");
exit();
}
$msg = htmlspecialchars($msg,ENT_QUOTES);
$color = $_POST['color'];
//เก็บข้อมูลในตาราง Message
$sql = "INSERT INTO message VALUES
(0,'$name','$msg','$color',NOW());";
mysql_query($sql);
//อัปเดตวันเวลาที่ตาราง chatter ให้เป็นวันเวลาล่าสุดที่ผู้ใช้รายนั้นโพสข้อความ
$sql = "UPDATE chatter SET last_post_time = nOW() WHERE name = '$name';";
mysql_query($sql);
header("content-type: text/plain; charset = tis-620");
echo "";
?>
อาการเป็นอย่างนี้ครับ
ถ้าสมมมุติว่ารับค่าจาก form 1 แล้วกำหนด action = "add_msg.php" ทุกอย่างจะทำงานปกติ ฐานข้อมูลอัพเดต
แต่ถ้าผมส่งไปแบบ ajaxcll เพื่่อส่งข้อมูลไปอย่างเดียวโดยไม่ต้องรันหน้า add_msg.php ส่งไม่ไดครับ
อันนี้ผมทำห้อง Chatroom ครับ
ผมไม่แน่ใจว่าผมเข้าใจถูกหรือป่าว ถ้าผมส่งแบบ action มันจะรันหน้า add_msg.php
แต่ถ้าผมส่งแบบ ajax มันจะส่งข้อมูลอย่างเดียวเพื่อไปประมวลผลที่หน้า add_msg.php โดยไม่รันหน้า add_msg.php
ช่วยอธิบายหรือขอคำชี้แนะหน่อยครับ 1 อาทิตย์แหละ ยังไม่ได้เลย ขอบคุณพี่ๆๆทุกคนครับ
Tag : PHP
|
|
|
|
|
|
Date :
2013-12-19 12:02:54 |
By :
beerburn |
View :
856 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ อย่าลืม framework.js น่ะครับ
|
|
|
|
|
Date :
2013-12-19 13:59:30 |
By :
beerburn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-12-20 06:34:09 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|