|
|
|
ถามเกี่ยวกับ ajax php คือกรอกข้อมูลจากฟอร์เสร็จ submit แล้วมันไม่ยอมส่งข้อมูลไปครับ แต่ ie ส่งไปครับ |
|
|
|
|
|
|
|
มันไม่ยอมส่งข้อมูลไปที่ customer_info_ss.php ครับ แต่ใช้ IE มันส่งข้อมูลครับงงเลย
โค๊ด
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
input, textarea {
background-color:#eeeeee;
}
</style>
<script src="ajax_framework.js"> </script>
<script>
function ajaxSubmit() {
var data = getFormData("frm");
var URL = 'customer_info_ss.php';
ajaxLoad('post', URL, data, 'msg');
}
</script>
</head>
<body><center>
<div style="width:500px;text-align:left;">
<h2>Shopping Cart</h2>
<form name="frm">
<span style="font:bold 14pt;">ข้อมูลผู้สั่งซื้อสินค้า</span>
<p>
ชื่อ:<br>
<input type="text" name="name" size="50">
<br>
ที่อยู่:<br>
<textarea name="address" cols="50" rows="4"></textarea>
<br>
โทร:<br>
<input type="text" name="phone" size="50">
<br>
Email:<br>
<input type="text" name="email" size="50">
<p>
วิธีการชำระเงิน:<br>
<input type="radio" name="payment" value="โอนผ่านธนาคาร" checked>โอนผ่านธนาคาร -
[ชื่อบัญชี ... เลขที่บัญชี ...ธนาคาร...สาขา...]<br>
<input type="radio" name="payment" value="ธนาณัติ">ธนาณัติ -
[สั่งจ่าย...ในนาม...]
<p>
<button onClick="ajaxSubmit()">ส่งข้อมูล</button><p>
<a href="shopping_cart.php">ยกเลิก</a>
</form>
</div>
<div id="msg" style="width:500px;font:12pt;background-color:#eeeeee;"> </div>
</body>
</html>
customer_info_ss.php
Code (PHP)
<?php
session_start();
include("connect.php");
$msg = "";
$name = htmlspecialchars($_POST['name'], ENT_QUOTES);
$name = enc($name);
$address = htmlspecialchars($_POST['address'], ENT_QUOTES);
$address = enc($address);
$phone = htmlspecialchars($_POST['phone'], ENT_QUOTES);
$phone = enc($phone);
$email = htmlspecialchars($_POST['email'], ENT_QUOTES);
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$";
if(empty($name)) {
$msg = "ท่านยังไม่ได้ใส่ชื่อ";
}
else if(empty($address)) {
$msg = "ท่านยังไม่ได้ใส่ที่อยู่";
}
else if(empty($phone)) {
$msg = "ท่านยังไม่ได้ใส่เบอร์โทร";
}
else if(!eregi($pattern, $email)) {
$msg = "ท่านใส่ Email ไม่ถูกต้องตามรูปแบบ";
}
if($msg!="") {
header("content-type:text/plain; charset=utf-8");
echo $msg;
exit();
}
$payment = enc($_POST['payment']);
$sql = <<<SQL
INSERT INTO customer VALUES
('', '$name', '$address', '$phone', '$email', '$payment', NOW());
SQL;
mysql_query($sql);
$cust_id = mysql_insert_id();
$sid = session_id();
$sql = <<<SQL
SELECT * FROM cart
WHERE sid = '$sid';
SQL;
$result = mysql_query($sql);
while($cart = mysql_fetch_array($result)) {
$sql = <<<SQL
INSERT INTO orders VALUES(
'', $cust_id, {$cart['pid']}, '{$cart['product_name']}',
{$cart['price']}, {$cart['quantity']}
);
SQL;
mysql_query($sql);
}
$sql = <<<SQL
DELETE FROM cart
WHERE sid = '$sid';
SQL;
mysql_query($sql);
mysql_close($dblink);
header("content-type:text/javascript; charset=utf-8");
echo <<<JS
document.forms['frm'].style.display = 'none';
var msg = 'เราได้รับข้อมูลการสั่งซื้อของท่านแล้ว<br>หากท่านชำระเงินตามวิธีการที่ระบุแล้ว ';
msg += '<br>เราจะดำเนินการจัดส่งสินค้าให้ท่านทันที<p>ขอบพระคุณที่เลือกซื้อสินค้าจากเรา';
msg += '<p><a href="shopping_cart.php">กลับไปที่หน้าหลัก</a>';
document.getElementById('msg').innerHTML = msg;
JS;
?>
<?php
function enc($input) {
return iconv('utf-8', 'tis-620', $input);
}
?>
Tag : PHP
|
ประวัติการแก้ไข 2011-03-04 10:00:15 2011-03-04 10:06:34
|
|
|
|
|
Date :
2011-03-04 09:14:02 |
By :
kenghockey |
View :
1167 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอา script มาดูด้วยสิคะ
|
|
|
|
|
Date :
2011-03-04 15:15:58 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
script
Code (JavaScript)
function ajaxLoad(method, URL, data, displayId) {
var ajax = null;
if(window.ActiveXObject) {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest) {
ajax = new XMLHttpRequest();
}
else {
alert("Your browser doesn't support Ajax");
return;
}
method = method.toLowerCase();
URL += "?dummy=" + (new Date()).getTime();
if(method=="get") {
URL += "&" + data;
data = null;
}
ajax.open(method, URL);
if(method=="post") {
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
ajax.onreadystatechange = function() {
if(ajax.readyState==4 && ajax.status==200) {
var ctype = ajax.getResponseHeader("Content-Type").toLowerCase();
ajaxCallback(ctype, displayId, ajax.responseText);
delete ajax;
ajax = null;
}
}
ajax.send(data);
}
function ajaxCallback(contentType, displayId, responseText) {
if(contentType.match("text/javascript")) {
eval(responseText);
}
else {
var el = document.getElementById(displayId);
el.innerHTML = responseText;
}
}
function getFormData(form_name_or_id) {
var frm = document.forms[form_name_or_id];
if(frm==null) {
alert("form not found!");
return;
}
var data = "";
var num_el = frm.elements.length;
for(i=0; i<num_el; i++) {
var el = frm.elements[i];
if(el.name=="" && el.id=="") {
continue;
}
var param_name = "";
if(el.name!="") {
param_name = el.name;
}
else if(el.id!="") {
param_name = el.id;
}
var t = frm.elements[i].type;
var value = "";
if(t=="text"||t=="password"||t=="hidden"||t=="textarea") {
value = encodeURI(el.value);
}
else if(t=="radio"||t=="checkbox") {
if(el.checked) {
value = encodeURI(el.value);
}
else {
continue;
}
}
else if(t=="select-one") {
value = encodeURI(el.options[el.selectedIndex].value);
}
else if(t=="select-multiple") {
for(j=0; j<el.length; j++) {
if(el.options[j].selected) {
if(data!="") {
data += "&";
}
data += param_name + "=";
data += encodeURI(select.options[j].value);
}
}
continue;
}
if(data!="") {
data += "&";
}
data += param_name + "=" + value;
}
return data;
}
|
|
|
|
|
Date :
2011-03-04 16:47:41 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|