Inhaltsverzeichnis
XHTML
CSS
jQuery
PHP
Heim Backend-Entwicklung PHP-Tutorial 可编者的表格:jQuery+PHP实现实时编辑表格字段内容

可编者的表格:jQuery+PHP实现实时编辑表格字段内容

Jun 13, 2016 pm 12:52 PM
class gt lt table

可编辑的表格:jQuery+PHP实现实时编辑表格字段内容

?

在本例中,我们会通过jQuery实现单击将一个文本信息变为可编辑的表单,你可以对文本内容进行编辑,然后点击“确定”按钮,新的内容将发送到后台PHP程序处理,并保存到数据库;当点击“取消”按钮,则页面恢复到初始状态。

查看演示DEMO 下载源码

?

本例适用场景:当查看详细资料,如用户详情信息,发现其中某几个字段信息需要修改,可直接点击该字段内容进行修改,节约了用户时间,(传统的做法是 进入一个编辑页面,列出所有编辑的字段信息,即使你只需要编辑其中一两个字段内容,然后点击提交)提高了WEB响应速度,从而提高了前端用户体验。

?

本例依赖jquery库,并基于jeditable插件,具有以下特点:

  • 实时编辑,后台实时响应,并即时完成局部刷新。
  • 可自定义输入表单类型,目前jeditable提供text,select,textarea类型。
  • 响应键盘的回车和ESC键。
  • 插件机制,本例提供与jquery ui的datepicker日历控件的整合。

下面我们来一步步讲解实现过程。

?

XHTML

我们需要制作一个表格,如下:

Nach dem Login kopieren
客户信息
姓名 李小三 办公电话 021-12345678
称谓 先生 手机 13800138000
公司名称 常丰集团 电子邮箱 lrfbeyond@163.com
潜在客户来源 公共关系 有限期 2011-11-30
职位 部门经理 网站 www.helloweba.com
创建时间 2010-11-04 21:11:59 修改时间 2010-11-05 09:42:52
备注 备注信息

?

这是一个用户信息的表格,从代码中可以发现响应的字段信息的td都给了一个class和id属性,并赋值。值得一提的是表格中的td对应的id的值是和数据库中的字段名称一一对应的,这样做就是为了在编辑时让后台获取相应的字段信息,后面的PHP代码中会讲到。

?

CSS

table{width:96%; margin:20px auto; border-collapse:collapse;} 
table td{line-height:26px; padding:2px; padding-left:8px; border:1px solid #b6d6e6;} 
.table_title{height:26px; line-height:26px; background:url(btn_bg.gif) repeat-x bottom; 
 font-weight:bold; text-indent:.3em; outline:0;} 
.table_label{background:#e8f5fe; text-align:right; }
Nach dem Login kopieren

?

CSS渲染了表格样式,让表格看起来更舒服点。

?

jQuery

提到jquery,一定要记住在页面的

之间要引用jquery和jeditable插件
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jquery.jeditable.js"></script> 
Nach dem Login kopieren

?

然后开始调用插件。

$(function(){ 
     $('.edit').editable('save.php', {  
         width     :120, 
         height    :18, 
         //onblur    : 'ignore', 
         cancel    : '取消', 
         submit    : '确定', 
         indicator : '<img  src="/static/imghw/default1.png" data-src="loader.gif" class="lazy" alt=" 可编者的表格:jQuery+PHP实现实时编辑表格字段内容 " >', 
         tooltip   : '单击可以编辑...' 
     }); 
}); 
Nach dem Login kopieren

?

jeditable插件提供了很多属性和方法的调用。可以设置宽度,高度,按钮的文本信息,提交时的加载图片,鼠标滑上的提示信息等等。save.php是编辑后的信息最终提交的后台程序的地址。现在看看是不是表格中的信息可以编辑了哦。

?

jeditable还提供了select,textarea类型的编辑,并提供插件api接口。来看下拉选择框select的处理:

$('.edit_select').editable('save.php', {  
    loadurl   : 'json.php', 
    type      : "select", 
}); 
Nach dem Login kopieren

?

type指定的是select类型,select里加载的数据来自json.php,json.php提供了下拉框所需的数据源。

$array['老客户'] =  '老客户'; 
$array['独自开发'] =  '独自开发'; 
$array['合作伙伴'] =  '合作伙伴'; 
$array['公共关系'] =  '公共关系'; 
$array['展览会'] =  '展览会'; 
print json_encode($array); 
Nach dem Login kopieren

?

这些数据是直接存在json.php文件里的,当然你也可以通过读取数据库信息,然后生成json数据,关于如何生成json数据,请查看PHP中JSON的应用。还有一种方法是直接在editable中指定data:

$('.edit_select').editable('save.php', {  
    data : " {'老客户':'老客户','独自开发':'独自开发','合作伙伴':'合作伙伴', '展览会':'展览会'}", 
    type : "select", 
}); 
Nach dem Login kopieren

?

不难发现,其实上述代码中的data就是一串json数据。

textarea类型就不再多数,将type类型改为textarea就可以了。PS:默认类型为text。

当处理日期类型时,我接入了一个jquery ui的datepicker日历插件,当然别忘了要引入juqery ui插件和样式:

<link rel="stylesheet" type="text/css" href="css/jquery-ui.css"> 
<script type="text/javascript" src="js/jquery-ui.js"></script> 
Nach dem Login kopieren

?

接入jquery ui的datepicker日历插件

$.editable.addInputType('datepicker', { 
    element : function(settings, original) { 
        var input = $('<input class="input">'); 
        input.attr("readonly","readonly"); 
        $(this).append(input); 
        return(input); 
    }, 
    plugin : function(settings, original) { 
        var form = this; 
        $("input",this).datepicker(); 
    } 
});
Nach dem Login kopieren

?

调用的代码直接指定type类型为datepicker即可。

$(".datepicker").editable('save.php', {  
    width     : 120, 
    type      : 'datepicker', 
    onblur    : "ignore", 
}); 
Nach dem Login kopieren

?

现在看看,表格中的“有限期”字段的日期是不是可以修改了。好了,还有其他更多的插件接入期待您的加入。

?

PHP

编辑好的字段信息会发送到后台程序save.php程序处理。save.php需要完成的工作是:接收前端提交过来的字段信息数据,并进行必要的过滤和验证,然后更新数据表中相应的字段内容,并返回结果。

include_once("connect.php"); //连接数据库 
$field=$_POST['id'];  //获取前端提交的字段名 
$val=$_POST['value']; //获取前端提交的字段对应的内容 
$val = htmlspecialchars($val, ENT_QUOTES); //过滤处理内容 
 
$time=date("Y-m-d H:i:s"); //获取系统当前时间 
if(empty($val)){ 
    echo "不能为空"; 
}else{ 
    //更新字段信息 
    $query=mysql_query("update customer set $field='$val',modifiedtime='$time' where id=1"); 
    if($query){ 
       echo $val; 
    }else{ 
       echo "数据出错";     
    } 
} 
Nach dem Login kopieren

?

再回到开始的HTML代码,表格中显示的字段内容信息当然是从数据库读取来的,所以要用PHP读取数据表,把内容显示出来就OK,详细过程大家自己写一个吧。

?

如此,可编辑的表格就此收工。但是还不能完工,关于对输入信息的有效性的验证问题我还在研究,后面的文章我会陆续附上,敬请关注,也期待各位朋友的加入。

?

来源:helloweba.com :? http://www.helloweba.com/view-search-74.html

?

参考:

1. http://www.appelsiini.net/projects/jeditable

2. http://www.arashkarimzadeh.com/jquery/7-editable-jquery-plugin.html

3. http://blog.yoren.info/2008/05/jquery-%E7%94%A8jeditable%E5%BF%AB%E9%80%9F%E6%9B%B4%E6%96%B0mysql%E8%B3%87%E6%96%99/

?

?

?

?

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

So verwenden Sie Klassen und Methoden in Python So verwenden Sie Klassen und Methoden in Python Apr 21, 2023 pm 02:28 PM

Konzepte und Instanzen von Klassen und Methoden Klasse (Klasse): wird verwendet, um eine Sammlung von Objekten mit denselben Eigenschaften und Methoden zu beschreiben. Es definiert die Eigenschaften und Methoden, die jedem Objekt in der Sammlung gemeinsam sind. Objekte sind Instanzen von Klassen. Methode: In der Klasse definierte Funktion. Klassenkonstruktionsmethode __init__(): Die Klasse verfügt über eine spezielle Methode (Konstruktionsmethode) namens init(), die automatisch aufgerufen wird, wenn die Klasse instanziiert wird. Instanzvariablen: In der Deklaration einer Klasse werden Attribute durch Variablen dargestellt. Solche Variablen werden Instanzvariablen genannt. Instanziierung: Erstellen Sie eine Instanz einer Klasse, ein bestimmtes Objekt der Klasse. Vererbung: Das heißt, eine abgeleitete Klasse (derivedclass) erbt die Basisklasse (baseclass).

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Was bedeutet Klasse in Python? Was bedeutet Klasse in Python? May 21, 2019 pm 05:10 PM

Klasse ist ein Schlüsselwort in Python, das zum Definieren einer Klasse verwendet wird: Fügen Sie nach der Klasse ein Leerzeichen hinzu und fügen Sie dann den Klassennamen hinzu. Wenn es mehrere Wörter gibt, verwenden Sie die Groß-/Kleinschreibung Benennung, wie zum Beispiel [class Dog()].

Ersetzen Sie den Klassennamen eines Elements mit jQuery Ersetzen Sie den Klassennamen eines Elements mit jQuery Feb 24, 2024 pm 11:03 PM

jQuery ist eine klassische JavaScript-Bibliothek, die in der Webentwicklung weit verbreitet ist. Sie vereinfacht Vorgänge wie die Verarbeitung von Ereignissen, die Bearbeitung von DOM-Elementen und die Durchführung von Animationen auf Webseiten. Bei der Verwendung von jQuery kommt es häufig vor, dass Sie den Klassennamen eines Elements ersetzen müssen. In diesem Artikel werden einige praktische Methoden und spezifische Codebeispiele vorgestellt. 1. Verwenden Sie die Methoden „removeClass()“ und „addClass()“. jQuery stellt die Methode „removeClass()“ zum Löschen bereit

Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Mar 10, 2024 pm 12:03 PM

Beim Schreiben von PHP-Code ist die Verwendung von Klassen eine weit verbreitete Praxis. Durch die Verwendung von Klassen können wir verwandte Funktionen und Daten in einer einzigen Einheit kapseln, wodurch der Code klarer, leichter lesbar und einfacher zu warten ist. In diesem Artikel wird die Verwendung von PHPClass ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, besser zu verstehen, wie Klassen zur Optimierung von Code in tatsächlichen Projekten angewendet werden. 1. Klassen erstellen und verwenden In PHP können Sie das Schlüsselwort class verwenden, um eine Klasse zu definieren und Eigenschaften und Methoden in der Klasse zu definieren.

So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone Jul 29, 2023 am 08:22 AM

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? Aug 26, 2023 pm 10:58 PM

Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? In der Vue-Entwicklung verwenden wir häufig die V-Bind-Anweisung, um Klasse und Stil dynamisch zu binden. Manchmal können jedoch Probleme auftreten, z. B. dass wir V-Bind nicht korrekt zum Binden von Klasse und Stil verwenden können. In diesem Artikel werde ich die Ursache dieses Problems erläutern und Ihnen eine Lösung anbieten. Lassen Sie uns zunächst die v-bind-Direktive verstehen. v-bind wird zum Binden von V verwendet

See all articles