Verwenden Sie die Ajax-Methode in thinkphp?

WBOY
Freigeben: 2022-06-16 17:47:42
Original
2912 Leute haben es durchsucht

Die Ajax-Methode wird in Thinkphp auf die gleiche Weise verwendet wie PHP Ajax. Der Unterschied besteht darin, dass die URL in PHP auf eine Operationsmethode verweist kann Ajax verwenden, um die angegebenen Daten zurückzugeben, den Rückgabedatentyp zu ändern usw.

Verwenden Sie die Ajax-Methode in thinkphp?

Die Betriebsumgebung dieses Artikels: Windows 10-System, ThinkPHP Version 5, Dell G3-Computer.

Verwenden Sie die Ajax-Methode in thinkphp?

Verwenden Sie die Ajax-Methode in thinkphp

Die Verwendung von Ajax in thinkphp ist dasselbe wie die Verwendung von Ajax zuvor. Der Unterschied besteht darin, dass die URL im vorherigen Ajax auf eine Seite verweist und die Die URL in thinkphp muss auf eine Aktionsmethode verweisen.

1. Thinkphp verwendet Ajax, um Daten zurückzugeben

1. Schreiben Sie zunächst eine Methode in AdminControllerMainController.php

public function testajax()//ajax测试方法
    {
        $this->show();
    }
Nach dem Login kopieren

2 Die Ajax-Verarbeitungsmethode in AdminControllerMainController.class.php

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script><!--jquery文件放在public/js里面。__PUBLIC__找到public目录-->
<title>无标题文档</title>
</head>
<body>
    <select id="nation"></select>
</body>
<script type="text/javascript">
        $.ajax({
            url:"__CONTROLLER__/ajaxchuli",//这里指向的就不再是页面了,而是一个方法。
            data:{},
            type:"POST",
            dataType:"JSON",
            success: function(data){
                //alert(data[0].code);//这里要用索引,使用eq读取不出来数据。
                var str="";
                for(a in data)
                {
                    str = str+"<option value=&#39;"+data[a].code+"&#39;>"+data[a].name+"</option>";
                }
                $("#nation").html(str);
            }
        })
</script>
Nach dem Login kopieren

4 Auf diese Weise werden die Daten auf der Seite angezeigt

2. Änderung des von Ajax zurückgegebenen Datentyps. In thinkphp gibt Ajax JSON-Daten zurück Standardmäßig können Sie Folgendes festlegen: DEFAULT_AJAX_RETURN. Die Einstellungsmethode lautet wie folgt: Wenn es sich um den XML-Modus handelt, werden die Daten automatisch in eine XML-Zeichenfolge codiert.

Beispiel:

public function ajaxchuli()
    {
        $n = D("Nation");//造一个nation表的模型对象
        $attr = $n->select();
        
        $this->ajaxReturn($attr);//ajax返回数据的方式,用ajaxReturn。
    }
Nach dem Login kopieren

Gleichzeitig müssen wir auch den Datentyp in Ajax in TEXT ändern

// 指定XML格式返回数据
$data[&#39;status&#39;] = 1;
$data[&#39;content&#39;] = &#39;content&#39;;
$this->ajaxReturn($data,&#39;xml&#39;);
Nach dem Login kopieren

3 Verwenden Sie Ajax und erstellen Sie (automatisches Erfassungsformular), um Daten zur Datenbank hinzuzufügen

1. Schreiben Sie zuerst die Zugriffsmethode

public function ajaxchuli()
{
$this->ajaxReturn("hello","eval");//将返回数据的类型更改成字符串
}
Nach dem Login kopieren

2. Schreiben Sie die Ajax-Verarbeitungsmethode

<script type="text/javascript">
        $.ajax({
            url:"__CONTROLLER__/ajaxchuli",//这里指向的就不再是页面了,而是一个方法。
            data:{},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                alert(data);//输出结果就是hello
            }
        })
</script>
Nach dem Login kopieren
4. Achten Sie hauptsächlich darauf, wie auf Klassen von Drittanbietern verwiesen wird.

1. Erstellen Sie zunächst eine Methode xianshi();

public function addajax()
    {
        $this->show();
    }
Nach dem Login kopieren

2. Erstellen Sie die Anzeigeseite

<body>
<div>代号:<input type="tel" id="code" /></div>
<div>名称:<input type="tel" id="name" /></div>
<div><input type="button" id="btn" value="添加" /></div>
</body>
<script type="text/javascript">
$("#btn").click(function(){
        var code = $("#code").val();
        var name = $("#name").val();
        $.ajax({
                url:"__CONTROLLER__/addchuli",
                data:{Code:code,Name:name},//要用create方法,这里的列名就要和数据库中的列名一样,这里的首字母要大写。
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                    alert(data);
                }
            })
    })
</script>
Nach dem Login kopieren

3. Der Dateiname lautet ursprünglich page. class.php. Ändern Sie es in Page.class.php, was mit dem Klassennamen übereinstimmen sollte.

(2) Kopieren Sie Page.class.php in thinkphpApplicationHomelibs;

(4) Ändern Sie Zeile 57 in der Datei Page.class.php $this->limit = "LIMIT".$this->setLimit(); und entfernen Sie „LIMIT“;

5 der Zeichenfolge

1. Die gekapselte Methode ist im selben Controller geschrieben

public function addchuli()
    {
        $n = D("Nation");
        $n->create();//自动收集表单
        $r = $n->add();//调用添加的方法
        if($r)
        {
            $this->ajaxReturn("OK","eval");//如果添加成功输出“OK”,eval代表数据类型为字符串。
        }
        else
        {
            $this->ajaxReturn("NO","eval");//如果添加失败,就输出”NO“。
        }
    }
Nach dem Login kopieren

2 Die gekapselte Methode befindet sich nicht im selben Controller

(1) Schreiben Sie nur Folgendes in Maincontroller.class.php Methode

public function xianshi()
    {
        $n = D("chinastates");//造chinastates表的对象
        $shuliang = $n->count();//取出数据的总条数
        $page = new HomelibsPage($shuliang,15);//将page文件类引入。()里面需要参数,第一个参数是数据的总数量,第二个是每页显示多少条数据。所以上面要先求出数量。
        
        $xinxi = $page->fpage();        
        
        $attr = $n->limit($page->limit)->select();//查询出所有数据,limit(0,15),需要修改Page.class.php文件中的第57行$this->limit = "LIMIT ".$this->setLimit();,将 "LIMIT ".去掉,如果不去掉的话,将会显示limit(limit(0,15)),度了1个limit。
        $this->assign("shuju",$attr);//将查询出的数据都注入显示页面
        $this->assign("xinxi",$xinxi);
        $this->show();//调用显示方法在显示页面显示。
    }
Nach dem Login kopieren

(2) Schreiben Sie die gekapselte Methode „functions.php“ in thinkphpApplicationHome mit dem folgenden Inhalt

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>名称</td>
        <td>父级代号</td>
    </tr>
    <foreach name="shuju" item="v" >
     <tr>
        <td>{$v.areacode}</td>
        <td>{$v.areaname}</td>
        <td>{$v.parentareacode}</td>
    </tr>
    </foreach>
</table>
<div>{$xinxi}</div><!--显示分页信息-->
</body>
Nach dem Login kopieren

(3) Geben Sie nach dem Schreiben http://localhost/thinkphp/index.php/Home/Main in den Browser ein /test kann das nicht lesen Länge der Zeichenfolge, und Sie müssen der Konfigurationsdatei einen Code hinzufügen:

"LOAD_EXT_FILE"=>"functions",//Laden Sie automatisch die Funktionsbibliotheksklasse

Nach diesem Code lesen Sie die Länge der Zeichenfolge.

6. Automatisch feststellen, ob die Sitzung vorhanden ist

(1) Wird zum Speichern des Benutzernamens und anderer Informationen verwendet.

Vorherige Methode: Auf jeder Seite oder Methode muss festgestellt werden, ob die Sitzung vorhanden ist.

(1) Erstellen Sie eine Fucontroller-Klasse, um festzustellen, ob die Sitzung vorhanden ist.

public function test()
    {
        $str = "volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值:";//给str一个字符串
        $m = A("Main");//造一个Main控制器的对象
        echo $m->ChangDu($str);//输出$str的长度
    }
    
    public function ChangDu($str)//ChangDu方法,输出字符串的长度。
    {
        return strlen($str);
    }
Nach dem Login kopieren

(2) Schreiben Sie eine Testmethode. Beachten Sie, dass die geerbte übergeordnete Klasse FuController und nicht Controller ist. Wenn Sie diese Seite zum ersten Mal besuchen, springen Sie zur Anmeldemethode. Da es keinen Sitzungswert gibt, wird der obige $this->redirect("Home/Login/login",array(),5,'Bitte melden Sie sich an ') wird ausgeführt. ;

public function test()
    {
        $str = "volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值:";//给str一个字符串
        $m = A("Main");//造一个Main控制器的对象
        echo ChangDu($str);//输出$str的长度
    }
Nach dem Login kopieren

(3) Schreiben Sie eine Anmeldemethode. Die obige Testmethode speichert die Sitzung, nachdem sie zur Anmeldemethode gesprungen ist. Wenn die Testmethode erneut verwendet wird, wird die Länge der Zeichenfolge angezeigt. Aufgrund des Sitzungswerts wird die Testmethode weiterhin ausgeführt.

<?php
function ChangDu($str)
{
    return strlen($str);
}
?>
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerwenden Sie die Ajax-Methode in thinkphp?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage