ถามพี่ๆเรื่อง ajax ถ้าต้องการ gen code ajax โดยข้อมูลมาจากฐานข้อมุล พี่ๆพอทราบวิธีไหมค่ะ
ไม่ใช่ gencode ครับ
แต่เป็นการเขียนให้ส่งค่ามาเป็น JSON ครับ
Date :
2012-06-06 16:59:00
By :
deawx
แล้วถ้าน้องเขียนให้ส่งค่าแบบ echo json_encode($resultArray); แล้วจาทำยังให้เป็นแบบ ด้านล่างอ่าค่ะ พี่ deawx
Code (JavaScript)
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
"212 555-1234",
"646 555-4567"
]
}
Date :
2012-06-06 17:12:06
By :
LuckyStar
แบบด้านล่างอ่าค่ะ อยากให้ส่วน $("#div1").append มันออกเป้นรูปแบบ
{
"firstName": "John",
"lastName": "Smith", อ่าพี่
page1
Code (JavaScript)
$(document).ready(function(){
$.ajax({
url: "resultMySQL.php" ,
type: "POST"
})
.success(function(result) {
$("#div1").empty();
var obj = jQuery.parseJSON(result);
$.each(obj, function(key, val) {
$("#div1").append('<hr />');
$("#div1").append('[' + key + '] ' + 'shopid=' + val["shopid"] +'<br />');
$("#div1").append('[' + key + '] ' + 'shopname=' + val["shopname"] +'<br />');
$("#div1").append('[' + key + '] ' + 'street=' + val["street"] +'<br />');
$("#div1").append('[' + key + '] ' + 'hint=' + val["hint"] +'<br />');
$("#div1").append('[' + key + '] ' + 'extened=' + val["extened"] +'<br />');
$("#div1").append('[' + key + '] ' + 'region=' + val["region"] +'<br />');
$("#div1").append('[' + key + '] ' + 'code=' + val["code"] +'<br />');
$("#div1").append('[' + key + '] ' + 'phone=' + val["phone"] +'<br />');
$("#div1").append('[' + key + '] ' + 'review=' + val["review"] +'<br />');
$("#div1").append('[' + key + '] ' + 'DateGen=' + val["DateGen"] +'<br />');
});
});
});
page2
Code (PHP)
$strSQL = "SELECT * FROM shop";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL) or die (mysql_error());
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($objConnect);
echo json_encode($resultArray);
ประวัติการแก้ไข 2012-06-06 17:16:41
Date :
2012-06-06 17:16:01
By :
LuckyStar
จะทำไรเหลา
Date :
2012-06-06 17:45:21
By :
ikikkok
ผมไม่แน่ใจว่า จะเอา Data ไปทำอะไร แต่ ถ้าเป็น Web Service ก็คงต้อง return ไม่ xml ก้อ Json ผมขอมั่วว่าเป็น แบบนี้นะครับ
เนื่องด้วย Database ที่ใช้ เป็น Database แบบ Relation จึงไม่สามารถ Select ข้อมูลออกมาเป็นแบบ Object ที่มีความสัมพันธ์ได้
วิธีการได้มาซึ่ง Object Data ที่เกิดจากการ join หรืออะไรก็แล้วจะเกิดจากการ ผูกกันของข้อมูล
ในที่นี่เป็น PHP จึงใช้วิธีการ select ข้อมูลมาต่อๆ กัน (หรือเปล่า)
"ผมไม่แน่ใจกับคำตอบนะครับ (ขอออกตัวไว้ก่อน) "
Code (PHP)
<?
include("connect.php");
function getData($id){
$sql="select firstName,lastName,id from us where id=".$id;
$data=mysql_query($sql)or die( "Select Error : ".mysql_error() );
$i=0;
while($row=mysql_fetch_object($data,"us")){
$re[$i]=$row;
$dataAddress=mysql_query("select streetAddress,city,state,postalCode from address where idh=".$re[$i]->id)or die( "Select Error : ".mysql_error() );
$re[$i]->Address=mysql_fetch_object($dataAddress);
$dataTel=mysql_query("select tel from tel where idh=".$re[$i]->id)or die( "Select Error : ".mysql_error() );
while($row2=mysql_fetch_object($dataTel)){
array_push($re[$i]->tel,$row2->tel);
}
$i+=1;
}
return $re;
}
echo json_encode(getData(1));
class us
{
public $firstName;
public $lastName;
public $Address;
public $tel=array();
}
?>
ออกมาเป็บแบบนี้
Code
[{"firstName":"John","lastName":"Smith","Address":{"streetAddress":"21 2nd Street","city":"New York","state":"NY","postalCode":"10021"},"tel":["212 555-1234","646 555-4567"],"id":"1"}]
---------------Database-------------------
Code (PHP)
CREATE TABLE IF NOT EXISTS `address` (
`streetAddress` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`city` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`state` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`postalCode` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`idh` int(11) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
--
-- Dumping data for table `address`
--
INSERT INTO `address` (`streetAddress`, `city`, `state`, `postalCode`, `idh`, `id`) VALUES
('21 2nd Street', 'New York', 'NY', '10021', 1, 1);
-- --------------------------------------------------------
--
-- Table structure for table `tel`
--
CREATE TABLE IF NOT EXISTS `tel` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idh` int(11) NOT NULL,
`tel` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
--
-- Dumping data for table `tel`
--
INSERT INTO `tel` (`id`, `idh`, `tel`) VALUES
(1, 1, '212 555-1234'),
(2, 1, '646 555-4567');
-- --------------------------------------------------------
--
-- Table structure for table `us`
--
CREATE TABLE IF NOT EXISTS `us` (
`firstName` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`lastName` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
--
-- Dumping data for table `us`
--
INSERT INTO `us` (`firstName`, `lastName`, `id`) VALUES
('John', 'Smith', 1);
ประวัติการแก้ไข 2012-06-06 18:06:02 2012-06-06 18:07:14
Date :
2012-06-06 18:01:15
By :
birdbird27
Load balance : Server 03