+ -
当前位置:首页 → 问答吧 → xajax无刷新上传

xajax无刷新上传

时间:2007-11-08

来源:互联网

演示地址
http://xajax.dayanmei.com/demo/upload/admin/language.php

下载
upload.rar (456.45 KB)
upload.rar (456.45 KB)
下载次数: 3564
2007-11-7 17:49

作者: psdshow   发布时间: 2007-11-07

鼓励原创精品!

作者: luzhou   发布时间: 2007-11-07

原创文章不能只上传上代码,需要有一定的文字介绍,最好有代码的讲解,或是技术方面的说明.

作者: PHPChina   发布时间: 2007-11-07

就是啊,光是代码随便在网上就可以扒到

作者: blankyao   发布时间: 2007-11-08

因为内容比较多,就没有整理了

主要就是用了国外网友扩展的xajax类
通过xajax.upload获取表单的文件域内容 $_FILE
再调用扩展上传,其中CreateLanguage是php中处理上传的函数 f1是表单的id
<script language="Javascript">
    function checkForm() {
        //通过xajax调用函数CreateLanguage获取id为f1的表单的内容
        return xajax.upload('CreateLanguage','f1');
    }

    function updateForm() {
        return xajax.upload('UpdateLanguage','f2');
    }
</script>




主要处理上传函数
复制PHP内容到剪贴板
PHP代码:

<?php
//显示添加语言表单
function ShowCreateLanguage($hidden = 1) {
     $objResponse = new XajaxResponse();
     if($hidden == 1){
          $objResponse->addAssign('createlanguage','innerHTML',"<a href=\"\" onclick=\"xajax_ShowCreateLanguage(2);return false\" title=\"\">create language</a>");
          $objResponse->addAssign('h','style.display','block');
          }else{
          $objResponse->addAssign('createlanguage','innerHTML',"<a href=\"\" onclick=\"xajax_ShowCreateLanguage(1);return false\" title=\"\">create language</a>");
          $objResponse->addAssign('h','style.display','none');
          }
     return $objResponse;
}

//处理表单添加
function CreateLanguage($f1) {
     global $db,$tablefix,$LANG;
     $objResponse = new xajaxResponse();
     $name = xml_escape($f1['name']);
     $charset = xml_escape($f1['charset']);
     $ord = xml_escape($f1['ord']);
     $ord = (($ord == '') OR !is_numeric($ord)) ? '1' : $ord;
     if(empty($name)){
          $objResponse->addAlert("Language name is empty");
          }
     if(empty($charset)){
          $objResponse->addAlert("charset is empty");
          }

     if(!empty($name) AND !empty($charset)){
          //判断是否有上传文件
          if($_FILES['filename']['tmp_name'] <>""){
               require_once(ROOT_PATH . '/includes/class.upload.php');       
               $fileFormat = array('gif','jpg','jpge','png');
               $upload =     new Upload( ROOT_PATH . '/attaches/', $fileFormat);
               if(!$upload->run('filename')){
                    $objResponse->addAlert("upload image file false");
               }else{
               //如果成功上传则添加进数据库
               $filename = $upload->returnArray[0][saveName];
               $insertsql = "INSERT INTO `language` (`languageid`,`name`,`filename`,`charset`,`ord`) VALUES (NULL,'$name','$filename','$charset','$ord')";
               if($db->query($insertsql)){
                    //如果添加成功
                    $languageid = $db->insertid();
                    $innerHTML = <<<EOT
    <ul id="page_" class="two">
    <li>$languageid</li>
    <li>$name</li>
    <li><img src="../attaches/" width="21" /></li>
    <li>$charset</li>
    <li>$ord</li>
    <li style="width:180px;"><a class="button1" href="" onclick="if(confirm('sure?')) xajax_DeleteLanguage($languageid);return false;" title="">$LANG[delete]</a> <a class="button1" href="" onclick="xajax_ModifyLanguage($languageid); return false;" title="">$LANG[edit]</a></li>
    </ul>
EOT;
                    $objResponse->addAppend("language","innerHTML",$innerHTML);
                    }
               }
               //如果没有文件上传
               }else{
               $insertsql = "INSERT INTO `language` (`languageid`,`name`,`filename`,`charset`,`ord`) VALUES (NULL,'$name','','$charset','$ord')";
               if($db->query($insertsql)){
                    //如果添加成功
                    $languageid = $db->insertid();
                    $innerHTML = <<<EOT
    <ul id="page_" class="two">
    <li>$languageid</li>
    <li>$name</li>
    <li>&nbsp;</li>
    <li>$charset</li>
    <li>$ord</li>
    <li style="width:180px;"><a class="button1" href="" onclick="if(confirm('sure?')) xajax_DeleteLanguage($languageid);return false;" title="">$LANG[delete]</a> <a class="button1" href="" onclick="xajax_ModifyLanguage($languageid); return false;" title="">$LANG[edit]</a></li>
    </ul>
EOT;
                    $objResponse->addAppend("language","innerHTML",$innerHTML);
                    }
               }
               //清空表单
               $objResponse->addClear('name','value');
               $objResponse->addClear('filename','value');
               $objResponse->addClear('charset','value');
               $objResponse->addClear('ord','value');
               $objResponse->addAssign("h","style.display","none");
          } 
     return $objResponse;
}

//删除语言,此函数未完全
function DeleteLanguage($languageid) {
     global $db,$tablefix;
     $languageid = xml_escape($languageid);
     $objResponse = new XajaxResponse();
     if(!is_numeric($languageid)){
          $objResponse->addAlert("language id is empty");
          }else{
          //取得filename,并删除图片
          $result = $db->query("SELECT `filename` FROM `language` WHERE `languageid` = '$languageid'");
          $r = $db->fetch_array($result);
          @unlink('../attaches/'.$r['filename']);         
          if($db->query("DELETE FROM `language` WHERE `languageid` = '$languageid' LIMIT 1")){
               //执行删除 应该还要删除与语言相关的东西
               //$objResponse->addAlert("success delete a session");
               $objResponse->addRemove("page_".$languageid);
               }else{
               $objResponse->addAlert("failed to delete a session");
               }
         }
     return $objResponse;
}

//显示修改语言表单
function ModifyLanguage($languageid) {
     global $db,$tablefix,$LANG;
     $languageid = xml_escape($languageid);
     $objResponse = new XajaxResponse();
     if(!is_numeric($languageid)){
          $objResponse->addAlert("Language id error");
          }else{
          $result = $db->query("SELECT * FROM `language` WHERE `languageid` = '$languageid' LIMIT 1");
          $language = $db->fetch_array($result);
          if(count($language)>0){
               if($language['filename'] != ''){
                    $image = "<img src=\"../attaches/\" width=\"21\">";
                    }else{
                    $image = '';
                    }
               $innerHTML = <<<EOT
<div id="midifyinput" style="margin:0 auto;padding:0;width:760px;">
<form id="f2" name="f2" onsubmit="return updateForm();" method="post" enctype="multipart/form-data">
<input type="hidden" name="languageid" value="" />
<table id="addlanguage" class="th">
    <th>Language Name</th>
    <th>Icon(21px * 14px)</th>
    <th>Charset</th>
    <th>Order</th>
    <th width="150">Control</th>
     <tr>
    <td><input type="text" name="name" id="name" value="" /></td>
    <td>$image<input type="file" name="filename" /></td>
    <td><input type="text" name="charset" id="charset" value="" /></td>
    <td><input type="text" name="ord" id="ord" value="" /></td>
    <td><input type="submit" class="button1" name="" value="$LANG[add]" /></td>
    </tr>
    </table>
    </form>
    </div>
EOT;
               $objResponse->addAssign("h","style.display",'');
               $objResponse->addAssign("h","innerHTML",$innerHTML);
               }else{
               $objResponse->addAlert("Language is not installed");
               }
          }
     return $objResponse;
}

//更新语言
function UpdateLanguage($f2) {
     global $db,$tablefix,$LANG;
     $objResponse = new xajaxResponse();
     $name = xml_escape($f2['name']);
     $charset = xml_escape($f2['charset']);
     $languageid = xml_escape($f2['languageid']);
     $ord = xml_escape($f2['ord']);
     $ord = (($ord == '') OR !is_numeric($ord)) ? '1' : $ord;
     if(empty($name)){
          $objResponse->addAlert("Language name is empty");
          }

     if(empty($charset)){
          //$objResponse->addAlert("charset is empty");
          }   

     if(!empty($name) AND !empty($charset)){
          //判断是否有上传文件
          if($_FILES['filename']['tmp_name'] != ""){
               require_once(ROOT_PATH . '/includes/class.upload.php');              
               $fileFormat = array('gif','jpg','jpge','png');
               $upload =     new Upload( ROOT_PATH . '/attaches/', $fileFormat);
               if(!$upload->run('filename')){
                    $objResponse->addAlert("upload image file false");
               }else{
               //如果成功上传则添加进数据库
               $filename = $upload->returnArray[0][saveName];
               //获取原来的图片路径并删除
               $result = $db->query("SELECT `filename` FROM `language` WHERE `languageid` = '$languageid' LIMIT 1");
               $image = $db->fetch_array($result);
               if(count($image)>0){
                    @unlink('../attaches/'.$image['filename']);
                    }            

               //更新数据库
               $updatesql = "UPDATE `language` SET `name` = '$name',`charset` = '$charset',`ord` = '$ord',`filename` = '$filename' WHERE `languageid` = '$languageid' LIMIT 1";
               if($db->query($updatesql)){
                    //如果添加成功
                    $RooPath = ROOT_PATH;
                    $innerHTML = <<<EOT
    <li>$languageid</li>
    <li>$name</li>
    <li><img src="../attaches/" width="21" /></li>
    <li>$charset</li>
    <li>$ord</li>
    <li style="width:180px;"><a class="button1" href="" onclick="if(confirm('sure?')) xajax_DeleteLanguage($languageid);return false;" title="">$LANG[delete]</a> <a class="button1" href="" onclick="xajax_ModifyLanguage($languageid); return false;" title="">$LANG[edit]</a></li>
EOT;
                    $objResponse->addAssign("page_","innerHTML",$innerHTML);                  
                    }
               }
               //如果没有文件上传
               }else{
               //更新数据库
               $updatesql = "UPDATE `language` SET `name` = '$name',`charset` = '$charset',`ord` = '$ord' WHERE `languageid` = '$languageid' LIMIT 1";
               if($db->query($updatesql)){
                    //如果添加成功
                   $result = $db->query("SELECT `filename` FROM `language` WHERE `languageid` = '$languageid' LIMIT 1");
                    $image = $db->fetch_array($result);
                    if(count($image)>0){
                         $filename = $image['filename'];
                         }
                    $innerHTML = <<<EOT
    <li>$languageid</li>
    <li>$name</li>
    <li><img src="../attaches/" width="21" /></li>
    <li>$charset</li>
    <li>$ord</li>
    <li style="width:180px;"><a class="button1" href="" onclick="if(confirm('sure?')) xajax_DeleteLanguage($languageid);return false;" title="">$LANG[delete]</a> <a class="button1" href="" onclick="xajax_ModifyLanguage($languageid); return false;" title="">$LANG[edit]</a></li>
EOT;
                    $objResponse->addAssign("page_","innerHTML",$innerHTML);
                    }
               }
               //隐藏表单
               $objResponse->addAssign("h","style.display","none");
          }

     return $objResponse;
}
?>

作者: psdshow   发布时间: 2007-11-09

这个怎么调用啊

作者: sanler   发布时间: 2007-11-12

引用:
原帖由 sanler 于 2007-11-12 00:39 发表
这个怎么调用啊
直接在演示文件里面有

作者: psdshow   发布时间: 2007-11-12

文件注释太少了   建议多加注释

作者: xiaoxiao0503   发布时间: 2007-12-12

写文档是门学问,也是很重要的啊。

作者: luzhou   发布时间: 2007-12-12

学习学习

作者: kissweb   发布时间: 2007-12-15