Heim  >  Artikel  >  php教程  >  Teilen der ThinkPHP-Nutzungserfahrung - ThinkPHP + Ajax realisiert ein zweistufiges Verknüpfungs-Dropdown-Menü

Teilen der ThinkPHP-Nutzungserfahrung - ThinkPHP + Ajax realisiert ein zweistufiges Verknüpfungs-Dropdown-Menü

高洛峰
高洛峰Original
2016-12-30 09:52:241475Durchsuche

Das erste ist das Design der Datenbank. Die Klassifizierungstabelle heißt cate.

Was ich mache, ist die Verknüpfung klassifizierter Daten auf zweiter Ebene. Die für die Daten erforderlichen Felder sind: id, name (chinesischer Name), pid (Eltern-ID).

Einstellungen für die übergeordnete ID: Wenn die Daten keine obere Ebene haben, ist die übergeordnete ID 0. Wenn es eine obere Ebene gibt, ist die übergeordnete ID die ID der oberen Ebene.

Sobald die Datenbank über Inhalte verfügt, können Sie mit dem Schreiben von Code zur Implementierung der sekundären Verknüpfung beginnen.

Erstens alle Daten mit PID 0 im Hintergrund-PHP abrufen, in $cate speichern und dann eine foreach-Schleife verwenden, um sie im 221f08282418e2996498697df914ce4e der ersten Ebene auszugeben.

Html-Code:

<select name="type" size="1" id="type">
    <option>请选择类型</option>
     <foreach name=&#39;cate&#39; item=&#39;v&#39;>
         <option value="{$v[&#39;ca_id&#39;]}">{$v.ca_name}</option>
     </foreach>
 </select>
 标签:
 <select name="lable" size="1" id="lables">
 </select>

Ajax-Code:

  $(&#39;#type&#39;).click(function(){
            $(this).change(function(){
                var objectModel = {};
                var   value = $(this).val();
               var   type = $(this).attr(&#39;id&#39;);
                objectModel[type] =value;
                $.ajax({
                    cache:false,
                    type:"POST",
                    url:site.web+"lable",
                    dataType:"json",
                    data:objectModel,
                    timeout:30000,
                    error:function(){
                        alert(site.web+"lable");
                    },
                    success:function(data){
                        $("#lables").empty();
                        var count = data.length;
                        var i = 0;
                        var b="";
                           for(i=0;i<count;i++){
                               b+="<option value=&#39;"+data[i].ca_id+"&#39;>"+data[i].ca_name+"</option>";
                           }
                        $("#lables").append(b);
                    }
                });
               });
        }
    );

Ajax-Code wird ausgelöst, nachdem der erste Ebenentyp geändert wurde. Die Hauptparameter der Ajax-Methode sind

1.url: Die Adresse zum Empfangen von Ajax im Hintergrund

2.Daten: Die an den Hintergrund übertragenen Daten werden normalerweise in JSON übergeben; die ausgewählte Klasse.

3.Typ: Übertragungsmethode, es gibt Get- und Post-Methoden, die mehr Daten übertragen können als Get und sicherer sind; 4.Fehler: Ajax-Ausführung Fehlermethode;

5.Erfolg: Ajax-Ausführungsmethode, bei der es sich um die Rückruffunktion handelt. Wenn ich hier Erfolg ausführe, lösche ich zunächst mit empty() den Inhalt des zweiten Dropdown-Menüs und gebe dann die aus dem Hintergrund erhaltenen Daten aus.

Die folgende Seite ist die Seite, auf der Thinkphp Ajax-Daten empfängt und verarbeitet

Die I()-Methode von Thinkphp kann tatsächlich als $_POST[] betrachtet werden, um die erste übergebene Ebene zu erhalten von ajax Wählen Sie die ID des Inhalts aus, rufen Sie dann seine Unterklasse ab und geben Sie ihn dann mit ajaxReturn() an Ajax zurück. Die Rückgabedaten werden im JSON-Format festgelegt, sodass Ajax die Daten im JSON-Format empfängt
//后台ajax验证
  $result = array();
  $cate =$_POST[&#39;type&#39;];
  $result = M(&#39;cate&#39;)->where(array(&#39;ca_pid&#39;=> $cate))->field(&#39;ca_id,ca_name&#39;)->select();
  $this->ajaxReturn($result,"JSON");

Native PHP-Rückgabedatenmethode:

Damit ist die Implementierung des zweistufigen Verknüpfungs-Dropdown-Menüs abgeschlossen. Es ist zu beachten, dass die URL korrekt sein muss und beim Empfang ein Rückgabewert vorliegen muss im Hintergrund, sonst führt Ajax die Erfolgsmethode von nicht aus.
   //搜索结果为$result
   .....
   echo json_encode($result);

Für mehr Austausch von ThinkPHP-Nutzungserfahrungen – ThinkPHP + Ajax zur Realisierung eines 2-Ebenen-Verknüpfungs-Dropdown-Menüs beachten Sie bitte die PHP-Chinese-Website für verwandte Artikel!

Stellungnahme:
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