เรื่อง Ajax กับ Disable อีกครั้งขอคำแนะนำจากทุกท่านด้วยค่ะ
ได้รับคำแนะนำจากสมาชิกท่านนึง ว่าถ้าจะตั้งรับค่า if จาก อีก เพจให้แก้ตรงส่วนของ return request แต่ลองใส่ if แล้วยังแก้ไมไ่ด้
รบกวนทุกท่านแนะนำในการเขียนรับค่าหน่อยคะ
Code (JavaScript)
<script language="JavaScript">
var HttPRequest = false;
function check() {
HttPRequest = false;
test = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'preupload_check.php';
var pmeters = "tUsername=" + encodeURI( document.getElementById("filename").value);
//document.getElementById('upload').disabled = true; //// Disable ///
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan1").innerHTML = "..";
}
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'Y')
{
window.location = '...';
// document.getElementById('upload').disable = true;
}
else
{
// document.getElementById('upload').disable = true;
document.getElementById("mySpan1").innerHTML = HttPRequest.responseText;
}
}
}
}
</script>
Code (PHP)
<?
$strUsername = trim($_POST["tUsername"]);
@session_start();
@$_SESSION['username']="$username";
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("sigdb");
$strSQL = "SELECT servname,Filename FROM preupload
WHERE servname ='$username'and Filename like '%".$strUsername."%'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mysql_num_rows($objQuery);
if(mysql_num_rows($objQuery)== 3)
{
echo"true";
}
else
{
echo"false" ;
}
mysql_close($objConnect);
?>
อันนี้จะเป็นตัว check ถ้าค่าได้ True ปุ่ม document.getElementById('upload').disable = true; ต้อง Disable อะคะ
ยังไม่ทำงานสักที ขอคำแนะนำด้วยค่า~Tag : PHP, Ajax
Date :
2010-09-03 23:08:33
By :
mzchewiize
View :
1157
Reply :
9
alert(HttPRequest.responseText);
ออกมาดูซิครับ debug ง่ายๆ ดูก่อนว่ามันจะตรงกับเงื่อนไขหรือเปล่า แล้วไป comment ตัวทีีจะ disable ทำไม
Date :
2010-09-03 23:15:56
By :
PlaKriM
disabled มี d ด้วยครับ
Date :
2010-09-03 23:49:58
By :
PlaKriM
WHERE servname ='$username'and Filename like '%".$strUsername."%'"; เคาะวรรค and ด้วยครับ ลองเปลี่ยนเป็นรรับแบบ get ดูก่อน แล้วรันไฟล์นี้ส่งค่า username มาเอง
abc.php?tUsername=abc แบบเนี้ย
เข้าใจไหมเนี้ย
Date :
2010-09-04 00:15:22
By :
PlaKriM
ค่ะ
คือส่วนที่เป็น php จะเป็นตัว check ถ้าคำตอบมันออกมาเป็น true ก็จะให้ disable ปุ่ม
คือจะมีวิธีเช็คจากค่า ตรงนี้เลยไหมคะ แล้วส่งกลับไปที่ script ด้านบน
ถ้าใช่ ก็ disable ไป แต่ถ้าไม่ใช่ ก็ enable ปุ่มต่อไปได้
จะเห็นว่า ตั้งเช็คไว้ถ้า row = 3 ค่ามันจะเป็น true คืออยากได้วิธีส่งคำตอบตรงนี้ไปที่ scripts อะคะ
งงไหมคะ = =
หรือว่าเขียนใหม่ คล้ายๆกันง่ายกว่า แต่ถึงกระนั้น ก็ยังไม่ Get หลักการมันอยู่ดี จะเขียนไงดีน่อ
ประวัติการแก้ไข 2010-09-04 00:22:55
Date :
2010-09-04 00:21:52
By :
mzchewiize
แก้ตรงนี้ค่ะ
Code (PHP)
if(HttPRequest.readyState == 4) // Return Request
{
alert(HttPRequest.responseText == 'Y')
document.getElementById('upload').disabled = true;
}
ใน if นี้ ลอง alert(HttPRequest.responseText) ดูว่าค่าที่ได้กลับมาคืออะไร
จากนั้นก็เช็คค่า ไม่แน่ใจว่า true หรือ false ถึงจะ disabled
แบบนี้
Code (PHP)
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'true'){//ตรงเงื่อนไขนี้ลองเปลี่ยนดูค่ะ แต่ต้องเทียบกับค่าที่ php echo นะ คุณ echo "true","false" ก็ต้องเช็คด้วยสองตัวนี้
document.getElementById('upload').disabled = true;
}
}
Date :
2010-09-04 00:43:23
By :
ultrasiam
update ค่ะ
แก้ได้แล้วน๊าา ขอบคุณทุกท่านเลยค๊าา~
Date :
2010-09-06 10:55:30
By :
mzchewiize
Load balance : Server 03