|
|
|
รบกวนสอบถามเกี่ยวกับการ ค้นหาโดยใช้ php+ajax หน่อยครับ |
|
|
|
|
|
|
|
คือผมได้ทำการค้นหาตามบทความนี้อะครับ https://www.thaicreate.com/tutorial/ajax-search-record.html
แล้วมันฟ้อง ERROR แบบนี้อะครับ
Warning: mysql_close() expects parameter 1 to be resource, null given in C:\xampp\htdocs\ajax\AjaxPHPSearchRecord2.php
แล้วผมอยากทราบว่า ทำไมเวลาผมเปิดไป หน้าแรกซึ่งยังไม่ได้มีการป้อนคำใด ๆ ลงไปในช่อง search แต่ว่า ข้อมูลที่อยู่ในตารางมันออกมาหมดแล้วอะครับ
หน้าแรก
Code (PHP)
<?php
/*** By Weerachai Nukitram***/
/*** http://www.ThaiCreate.Com ***/
?>
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
</head>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax(Search) {
HttPRequest = 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 = 'AjaxPHPSearchRecord2.php';
var pmeters = 'mySearch='+Search;
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("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
}
</script>
<body Onload="JavaScript:doCallAjax('');">
<h1>My Customer</h1>
<form name="frmMain">
Search <input type="text" name="txtSearch" id="txtSearch">
<input type="button" name="btnSearch" id="btnSearch" value="Search" OnClick="JavaScript:doCallAjax(document.getElementById('txtSearch').value);">
<br><br>
<span id="mySpan"></span>
</form>
</body>
</html>
หน้าสอง
Code (PHP)
<?php
require_once("connect.php");
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/
$strSearch = $_POST["mySearch"];
//$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
//$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM employee WHERE f_name LIKE '%".$strSearch."%' ORDER BY employee_id ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">EmployeeID</div></th>
<th width="98"> <div align="center">Name</div></th>
<th width="198"> <div align="center">Email</div></th>
<th width="97"> <div align="center">Personalgrade</div></th>
<th width="59"> <div align="center">Personal_type</div></th>
<th width="71"> <div align="center">Lastname</div></th>
</tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?php echo $objResult["employee_id"];?></div></td>
<td><?php echo$objResult["f_name"];?></td>
<td><?php echo$objResult["email"];?></td>
<td><div align="center"><?php echo $objResult["personalgrade"];?></div></td>
<td align="right"><?php echo $objResult["personal_type"];?></td>
<td align="right"><?php echo $objResult["l_name"];?></td>
</tr>
<?php
}
?>
</table>
<?php
mysql_close($objConnect);
?>
Tag : PHP, Ajax
|
|
|
|
|
|
Date :
2012-04-27 19:19:15 |
By :
phongphisut |
View :
1360 |
Reply :
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62.<body Onload="JavaScript:doCallAjax('');">
แก้เป็น
<body>
|
|
|
|
|
Date :
2012-04-27 19:35:46 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onload ใช้สำหรับระบุฟังก์ชั่นที่เราต้องการ ทุกครั้งที่หน้านี้ถูกเปิด หรือถูกรีเฟรชครับ
|
|
|
|
|
Date :
2012-04-27 20:54:07 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องเพิ่มส่วนของการป้อนวันที่ วันที่เริ่มและวันที่สิ้นสุด ในหน้าฟอร์มการค้นหาครับ
ลองค้นดูน่ะครับ "date picker" หรือ "ปฏิทิน"
|
|
|
|
|
Date :
2012-04-27 21:03:04 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาโค้ดมาดู แล้วเริ่มต้นถามกันใหม่ดีกว่าครับ
|
|
|
|
|
Date :
2012-04-27 21:16:54 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าจะให้ผมช่วยจริงๆ ผมก็จะเขียนโค้ดขึ้นใหม่เกือบทั้งหมดล่ะครับ
ผมไม่ชอบ AJAX แบบดั้งเดิม ผมมักจะเขียน JQuery ที่สั้นและกระชับกว่า
|
|
|
|
|
Date :
2012-04-27 21:39:50 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<script language="JavaScript">
$("#btnSearch").click(function(){
$.post("AjaxPHPSearchRecord2.php", {StartDate:$("#startDate").val() , EndDate:$("#endDate").val() , mySearch:$("#txtSearch").val()} , function(data) {
$("#mySpan").empty().append(data);
});
</script>
<body >
<h1>My Customer</h1>
<form name="frmMain">
StartDate:<input type="text" name="startDate" id="startDate" /> EndDate:<input type="text" name="endDate" id="endDate" /><br />
Search <input type="text" name="txtSearch" id="txtSearch">
<input type="button" name="btnSearch" id="btnSearch" value="Search" OnClick="JavaScript:doCallAjax(document.getElementById('txtSearch').value);">
<br><br>
<span id="mySpan"></span>
</form>
</body>
</html>
|
ประวัติการแก้ไข 2012-04-27 22:54:45
|
|
|
|
Date :
2012-04-27 22:50:50 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
require_once("connect.php");
$strSearch = $_POST["mySearch"];
$startDate = $_POST["StartDate"]; // ตัวแปรสองตัวที่รับมาจากไฟล์ที่หนึ่ง
$endDate = $_POST["EndDate"]; // จะนำไปใช้ใน คำสั่ง SQL ได้เลยครับ
//$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
//$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM employee WHERE f_name LIKE '%".$strSearch."%' ORDER BY employee_id ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">EmployeeID</div></th>
<th width="98"> <div align="center">Name</div></th>
<th width="198"> <div align="center">Email</div></th>
<th width="97"> <div align="center">Personalgrade</div></th>
<th width="59"> <div align="center">Personal_type</div></th>
<th width="71"> <div align="center">Lastname</div></th>
</tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?php echo $objResult["employee_id"];?></div></td>
<td><?php echo$objResult["f_name"];?></td>
<td><?php echo$objResult["email"];?></td>
<td><div align="center"><?php echo $objResult["personalgrade"];?></div></td>
<td align="right"><?php echo $objResult["personal_type"];?></td>
<td align="right"><?php echo $objResult["l_name"];?></td>
</tr>
<?php
}
?>
</table>
<?php
mysql_close($objConnect);
?>
|
|
|
|
|
Date :
2012-04-27 22:59:51 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในส่วนของปฏิทินเพื่อป้อนวันที่ หาได้จากในเวบบอร์ดครับ ลองค้นดู date picker หรือ calendar
|
|
|
|
|
Date :
2012-04-27 23:18:14 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษด้วยครับ พอดีผมคีย์สด
เพิ่ม }); ในบรรทัดที่ 12 ใน ความคิดเห็นที่ No.11 ครับ
ลืมครับ อีกนิดนึง ให้เอา คำสั่งชุดนี้ OnClick="JavaScript:doCallAjax(document.getElementById('txtSearch').value);"
ในบรรทัดที่ 19 ใน No.11 ออกด้วยครับ
|
ประวัติการแก้ไข 2012-04-27 23:26:36
|
|
|
|
Date :
2012-04-27 23:22:51 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่ได้ทดลองเลยครับ อันนี้เป็นเวอร์ชั่นแก้ตัว
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h1>My Customer</h1>
<form name="frmMain">
StartDate:<input type="text" name="startDate" id="startDate" /> EndDate:<input type="text" name="endDate" id="endDate" /><br />
Search <input type="text" name="txtSearch" id="txtSearch">
<input type="button" name="btnSearch" id="btnSearch" value="Search">
<br><br>
<span id="mySpan"></span>
</form>
<script language="JavaScript">
$("#btnSearch").click(function(){
$.post("AjaxPHPSearchRecord2.php", {StartDate:$("#startDate").val() , EndDate:$("#endDate").val() , mySearch:$("#txtSearch").val()} , function(data) {
$("#mySpan").empty().append(data);
});
});
</script>
</body>
</html>
จริงๆแล้วโค้ดสมบูรณ์แล้วครับ เพียงแต่ตำแหน่งที่วางโค้ดผิดไปเท่านั้น
|
|
|
|
|
Date :
2012-04-27 23:33:21 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชื่อของไฟล์ที่สอง ชื่อนี้หรือเปล่า "AjaxPHPSearchRecord2.php"
|
|
|
|
|
Date :
2012-04-27 23:38:20 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับ แล้ว datepicker ผมใช้ของ jquery แต่ปัญหามันติดตรงที่ว่า ถ้ามีบรรทัดนี้ Code (PHP)
<script src="http://code.jquery.com/jquery-latest.js"></script>
รูปภาพปฏิทินของผมมันไม่ยอมโชว์อะครับ แต่ถ้า comment แล้วมันจะแสดงได้ มันเป็นที่อะไรหรือครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<!-- <script src="http://code.jquery.com/jquery-latest.js"></script>
-->
<script>
$(function() {
$("#start_date").datepicker
({
dateFormat: 'dd/mm/yy',
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true
});
});
</script>
<script>
$(function() {
$( "#end_date" ).datepicker({
dateFormat: 'dd/mm/yy',
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true
});
});
</script>
</head>
<body>
<h1>My Customer</h1>
<form name="frmMain">
<div class="demo">
StartDate: <input type="text" name="start_date" id="start_date">
EndDate: <input type="text" name="end_date" id="end_date"><br />
</div>
Search <input type="text" name="txtSearch" id="txtSearch">
<input type="button" name="btnSearch" id="btnSearch" value="Search">
<br><br>
<span id="mySpan"></span>
</form>
<script language="JavaScript">
$("#btnSearch").click(function(){
$.post("AjaxPHPSearchRecord2.php", {StartDate:$("start_date").val() , EndDate:$("end_date").val() , mySearch:$("#txtSearch").val()} , function(data) {
$("#mySpan").empty().append(data);
});
});
</script>
</body>
</html>
|
ประวัติการแก้ไข 2012-04-27 23:48:32
|
|
|
|
Date :
2012-04-27 23:47:17 |
By :
phongphisut |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเอาบรรทัดนั้นออกแล้วทำงานได้ปกติ ก็โอเคครับ
|
|
|
|
|
Date :
2012-04-27 23:51:48 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ระวังด้วยครับ
{StartDate:$("start_date").val() , EndDate:$("end_date").val() , mySearch:$("#txtSearch").val()}
# หายไปครับ
{StartDate:$("#start_date").val() , EndDate:$("#end_date").val() , mySearch:$("#txtSearch").val()}
|
|
|
|
|
Date :
2012-04-27 23:53:42 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับ ค่า start_date กับ end_date มันไม่มาอะครับ
|
|
|
|
|
Date :
2012-04-28 00:00:57 |
By :
phongphisut |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะมาในชื่อนี้น่ะ
$_POST["StartDate"]
$_POST["EndDate"]
|
|
|
|
|
Date :
2012-04-28 00:03:05 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2012-04-28 00:09:05 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|