Extjs를 이용한 간단한 form submit
Scripter/EXTJS / 2008. 3. 14. 12:48
네이버블로그에 올렸던 내용을 다시 정리하여 올리다.
HTML
JAVASCRIPT
PHP
HTML
<div id="center" class="x-layout-inactive-content">
<div id="btn-show-dlg"></div>
<div id="grid-paging" class="x-grid-mso" style="border: 1px solid #c3daf9; overflow: hidden; width:550px;"></div>
</div>
<div id="btn-show-dlg"></div>
<div id="grid-paging" class="x-grid-mso" style="border: 1px solid #c3daf9; overflow: hidden; width:550px;"></div>
</div>
JAVASCRIPT
Step = function(){
var btn, dialog, form;
return{
Create:function(){
btn = new Ext.Button('btn-show-dlg', {
text: "New Project",
handler: Step.Init
});
},
Init:function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
dialog = new Ext.BasicDialog('loginDialogId', {
autoCreate: true,
width: 400,
height: 400,
modal: true,
syncHeightBeforeShow: true,
shadow:true,
fixedcenter:true,
title:'New Project'
});
dialog.body.dom.innerHTML="<div id='loginFormId' style='padding: 10px'></div>";
form = new Ext.Form({
labelAlign: 'left',
labelWidth: 100,
buttonAlign: 'center',
url:'php/subProject.php',
baseParams:{module:'login'}
});
form.add(
new Ext.form.TextField({
fieldLabel: 'Project Name',
name: 'pname',
width:250,
allowBlank:false
}),
new Ext.form.TextField({
fieldLabel: 'Acronym',
name: 'pacy',
width:250,
allowBlank:false
}),
new Ext.form.DateField({
fieldLabel: 'Start Date',
name: 'sdate',
width:200,
allowBlank:false
}),
new Ext.form.DateField({
fieldLabel: 'End Date',
name: 'edate',
width:200
}),
new Ext.form.TextArea({
fieldLabel: 'Description',
name: 'desc',
width:250,
allowBlank:false
})
);
form.addButton('Login', function(){
form.submit({
waitMsg:'Please Wait...',
reset:true,
success:Step.Success,
scope:Step
});
}, form);
form.render('loginFormId');
dialog.on('show', function(){form.items.item(0).focus();});
// dialog.show(document.body.getElementsByTagName('di v')[0]);
dialog.show(btn.getEl());
dialog.on('hide', function(){this.destroy(true)}, dialog);
},
Success: function(f,a){
dialog.destroy(true);
if(a && a.result && typeof a.result.level == "number"){
Step.level=a.result.level;
alert("level = "+Test.level);
}
}
}
}();
Ext.BasicForm.prototype.afterAction=function(actio n, success){
this.activeAction = null;
var o = action.options;
if(o.waitMsg){
Ext.MessageBox.updateProgress(1);
Ext.MessageBox.hide();
}
if(success){
if(o.reset){
this.reset();
}
Ext.callback(o.success, o.scope, [this, action]);
this.fireEvent('actioncompleted', this, action);
}else{
Ext.callback(o.failure, o.scope, [this, action]);
this.fireEvent('actionfailed', this, action);
}
}
Ext.onReady(Step.Create, Step, true);
var btn, dialog, form;
return{
Create:function(){
btn = new Ext.Button('btn-show-dlg', {
text: "New Project",
handler: Step.Init
});
},
Init:function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
dialog = new Ext.BasicDialog('loginDialogId', {
autoCreate: true,
width: 400,
height: 400,
modal: true,
syncHeightBeforeShow: true,
shadow:true,
fixedcenter:true,
title:'New Project'
});
dialog.body.dom.innerHTML="<div id='loginFormId' style='padding: 10px'></div>";
form = new Ext.Form({
labelAlign: 'left',
labelWidth: 100,
buttonAlign: 'center',
url:'php/subProject.php',
baseParams:{module:'login'}
});
form.add(
new Ext.form.TextField({
fieldLabel: 'Project Name',
name: 'pname',
width:250,
allowBlank:false
}),
new Ext.form.TextField({
fieldLabel: 'Acronym',
name: 'pacy',
width:250,
allowBlank:false
}),
new Ext.form.DateField({
fieldLabel: 'Start Date',
name: 'sdate',
width:200,
allowBlank:false
}),
new Ext.form.DateField({
fieldLabel: 'End Date',
name: 'edate',
width:200
}),
new Ext.form.TextArea({
fieldLabel: 'Description',
name: 'desc',
width:250,
allowBlank:false
})
);
form.addButton('Login', function(){
form.submit({
waitMsg:'Please Wait...',
reset:true,
success:Step.Success,
scope:Step
});
}, form);
form.render('loginFormId');
dialog.on('show', function(){form.items.item(0).focus();});
// dialog.show(document.body.getElementsByTagName('di v')[0]);
dialog.show(btn.getEl());
dialog.on('hide', function(){this.destroy(true)}, dialog);
},
Success: function(f,a){
dialog.destroy(true);
if(a && a.result && typeof a.result.level == "number"){
Step.level=a.result.level;
alert("level = "+Test.level);
}
}
}
}();
Ext.BasicForm.prototype.afterAction=function(actio n, success){
this.activeAction = null;
var o = action.options;
if(o.waitMsg){
Ext.MessageBox.updateProgress(1);
Ext.MessageBox.hide();
}
if(success){
if(o.reset){
this.reset();
}
Ext.callback(o.success, o.scope, [this, action]);
this.fireEvent('actioncompleted', this, action);
}else{
Ext.callback(o.failure, o.scope, [this, action]);
this.fireEvent('actionfailed', this, action);
}
}
Ext.onReady(Step.Create, Step, true);
PHP
<?php
require "../../includes/nav_Header.php";
if(!isset($_POST['module']) || strlen($_POST['module'])<1)die("Error: Server 1");
$module=$_POST['module'];
function Login($pname, $pacy, $sdate, $edate, $desc){
$dbconnection = new gsConnection();
global $VIP_DB;
//Login Validation
if(!isset($pname)||!strlen($pname))$pname = false;die("{errors:[{id:'pname', msg:'Required Field'}]}");
if(!isset($pacy)||!strlen($pacy))$pacy = false;die("{errors:[{id:'pacy', msg:'Required Field'}]}");
if(!isset($sdate)||!strlen($sdate))$sdate = false;die("{errors:[{id:'sdate', msg:'Required Field'}]}");
if(!isset($desc)||!strlen($desc))$desc = false;die("{errors:[{id:'desc', msg:'Required Field'}]}");
if($pname && $pacy && $sdate && $desc){
echo 'First SQL';
$sql = "SELECT projectid FROM projects WHERE projectname = '$pname'";
$result = @mysql_query ($sql);
if (mysql_num_rows($result) == 0){
echo 'SECOND SQL';
$sql = "INSERT INTO projects (projectname, projectacy, description, startdate, enddate, complete, mod_user)
VALUES ('$pname', '$pacy', '$desc', '$sdate', '$edate', 0, 0)";
$result = mysql_query($sql) or die(mysql_error());
)
}
$level=10;
print "{success:true, level:$level}\n";
exit;
}
Login($_POST['pname'], $_POST['pacy'], $_POST['sdate'], $_POST['edate'], $_POST['desc']);
die('Error: Server End');
?>
require "../../includes/nav_Header.php";
if(!isset($_POST['module']) || strlen($_POST['module'])<1)die("Error: Server 1");
$module=$_POST['module'];
function Login($pname, $pacy, $sdate, $edate, $desc){
$dbconnection = new gsConnection();
global $VIP_DB;
//Login Validation
if(!isset($pname)||!strlen($pname))$pname = false;die("{errors:[{id:'pname', msg:'Required Field'}]}");
if(!isset($pacy)||!strlen($pacy))$pacy = false;die("{errors:[{id:'pacy', msg:'Required Field'}]}");
if(!isset($sdate)||!strlen($sdate))$sdate = false;die("{errors:[{id:'sdate', msg:'Required Field'}]}");
if(!isset($desc)||!strlen($desc))$desc = false;die("{errors:[{id:'desc', msg:'Required Field'}]}");
if($pname && $pacy && $sdate && $desc){
echo 'First SQL';
$sql = "SELECT projectid FROM projects WHERE projectname = '$pname'";
$result = @mysql_query ($sql);
if (mysql_num_rows($result) == 0){
echo 'SECOND SQL';
$sql = "INSERT INTO projects (projectname, projectacy, description, startdate, enddate, complete, mod_user)
VALUES ('$pname', '$pacy', '$desc', '$sdate', '$edate', 0, 0)";
$result = mysql_query($sql) or die(mysql_error());
)
}
$level=10;
print "{success:true, level:$level}\n";
exit;
}
Login($_POST['pname'], $_POST['pacy'], $_POST['sdate'], $_POST['edate'], $_POST['desc']);
die('Error: Server End');
?>
'Scripter > EXTJS' 카테고리의 다른 글
ExtJS를 이용한 Password Meter (0) | 2008.04.01 |
---|---|
Ext JS Ext.ux.YoutubePlayer (0) | 2008.03.29 |
Extjs를 이용한 ExtPHP, PHP-Ext 프로젝트 오픈 (0) | 2008.03.07 |
Extjs Grouping Header Grid Plugins (13) | 2008.03.06 |
Extjs 크로스 도메인 관련 (0) | 2008.02.28 |