PDA

View Full Version : Need help to connect db with grid listener



talha06
17 Jul 2009, 4:47 AM
Hello,

I need ur helps to connect db with grid listener.. I want to connect db when I select a row from grid.. I added my code; I'll be happy if someone helps me..

Thanx in advance..
Talha



listeners: { // this is grid's listener..
rowselect: function(smObj, rowIndex, record) {
var secim = record.get('personeladi');
Ext.getCmp('adText').setValue(secim);
// DB CONNECTION; selecting data by "secim" valuable
}
}

tryanDLS
17 Jul 2009, 6:37 AM
You don't 'connect' to a DB from the client code. You execute an AJAX request to your server that talks to your database. Start by reading http://extjs.com/learn and the tutorials and all the examples provided.

talha06
17 Jul 2009, 2:47 PM
thnx tryanDLS.. I did as u suggested.. But I couldn't get data from server..

Here's my code:



function ajaxFunction(str)
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("Your browser does not support XMLHTTP!");
}
var url = "callback.jsp" + "?q=" + str;

xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
//xmlhttp.onreadystatechange=function()
//{
function stateChanged()
{
if(xmlhttp.readyState==4)
{
var xmlDoc=xmlhttp.responseXML.documentElement;
// Showing data on Extjs textfields
Ext.getCmp("noText").setValue(xmlDoc.getElementsByTagName("numara")[0].childNodes[0].nodeValue);
Ext.getCmp("cinsText").setValue(xmlDoc.getElementsByTagName("cinsiyet")[0].childNodes[0].nodeValue);
Ext.getCmp("emailText").setValue(xmlDoc.getElementsByTagName("email")[0].childNodes[0].nodeValue);
}
}
}
Server-side:



String ad = request.getParameter("q");
System.out.println("callback.jsp calisti, gelen parametre: " + ad);
int numara=0;
String cinsiyet="default", email="default";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ogrdb","root", "");
Statement st = con.createStatement();
String sql = "select * from ogr where AdSoyad=\'" + ad + "\'";
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
numara = rs.getInt("Numara");
cinsiyet = rs.getString("Cinsiyet");
email = rs.getString("Email");
}
System.out.println("Kisi Bilgileri\n-----\n" + numara + " - " + cinsiyet + " - " + email);
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("<?xml version='1.0' encoding='ISO-8859-1'?>");
response.getWriter().write("<ogr>");
response.getWriter().write("<numara>" + numara + "</numara>");
response.getWriter().write("<cinsiyet>" + cinsiyet + "</cinsiyet>");
response.getWriter().write("<email>" + email + "</email>");
response.getWriter().write("</ogr>");
} catch(Exception e) {
e.printStackTrace();
}
There's no problem in server-side code.. Cuz I can take data from DB.. But I couldn't send it back to Ext page..

Thanx in advance..
Talha

talha06
17 Jul 2009, 9:42 PM
any replies???

Lukman
17 Jul 2009, 10:02 PM
Why did you have to reinvent the ajax functionality when Ext JS has excellent Ext.Ajax?

You obviously did not do your homework first before asking in here. Go through all the samples and tutorials first.