2017-09-26 2 views
0

Ich arbeite mit einer API, die bestimmte ID-Nummern benötigt, um bestimmte Objekte abzurufen. Im Moment habe ich ein Formular für den Benutzer, um eine ID manuell einzugeben und bei der Übergabe erhält es ein Objekt. Aber ich möchte stattdessen Links zu allen IDs haben, damit der Benutzer einfach klicken und auswählen kann, welches Objekt abgerufen werden soll. Ich versuche nicht unbedingt eine GET-Anfrage vom Benutzer zu machen. Ich kann die GET-Anfrage im Backend machen, aber ich brauche nur einen Weg, um festzustellen, welche ID der Benutzer auswählen möchte. Ich habe nach einem Weg gesucht und gesucht, aber ich habe nichts spezifisch für mein Dilemma gefunden. Ich habe gelesen, eine versteckte Form oder AJAX zu verwenden, aber gibt es keine einfachere Lösung? Gibt es keinen Weg, wo der PHP-Server erkennen kann, auf welchen Link und welche ID er geklickt wurde, um ihn in einer Variablen zu speichern?Wie Daten von HTML zu PHP ohne ein Formular übergeben?

Zum Beispiel:

$lib->request('$ID.'/videos','GET');

ruft eine Reihe von Videos.

<button type ="button" id="23456" >Video Number 1</button> Gibt es eine Möglichkeit, dass ich die ID des oben genannten Knopfes an PHP weitergeben könnte?

Ich bin wirklich verwirrt und ich frage mich, ob ich über kompliziere dies bin.

+0

Wenn Sie Ajax verwenden Sie die gleiche ID für alle Anforderungen wiederverwenden können, das Problem Sie haben die Seite aktualisiert wird. –

+0

Ok, also habe ich die Frage umformuliert. Ich versuche nicht, bei einem Benutzerklick eine Anfrage zu erhalten. Was ich will, ist einfach eine Möglichkeit zu haben, mit dem Server zu kommunizieren, der den angeklickten Benutzer verbindet, so dass ich die Anfrage auf dem Backend entsprechend senden kann. – LetTheWritersWrite

+0

Das macht keinen Sinn, du sagst, du willst wissen, auf welchen Link der Benutzer geklickt hat, aber keine Anfrage, dann ist es kein Link. Du sagst auch 'Ich brauche nur einen Weg, um zu bestimmen, welche ID der Benutzer auswählen möchte .. Links werden nicht ausgewählt. Sprechen Sie über API-Dokumentation? Wo ein Benutzer eine "ID" hat und die Aufrufe an den Server die ID verwenden, ohne dass der Benutzer eine ID bereitstellt, um die Ergebnisse eines Anrufs einzuholen? Wenn nicht, können Sie Ihre Frage in einen Beispielcode eingeben? –

Antwort

0

Sie können Daten schreiben mit XHR!

Hier ist ein einfaches Beispiel jQuery unter Verwendung von Daten schreiben

// URL,parameter,callback function,RT datatype 
// just one example 
$.post("/"+id+"/videos",{}, 
    function(data){ 
    console.log(data); 
    }, 
    "text");//return datatype:json,html,xml,text 
} 

bearbeitet

Sie id von Ereignis

Notwendigkeit zu wissen, bekommen:

nur typeof ID === Nummer ausgelöst

$(document.body).on("mouseup",function(e){ 
    var _e = e.target; 
    if(typeof _e.id !== "undefined" && !isNaN(+_e.id)){ 
     var id = _e.id; 
     //trigger XHR last edited code 
    } 
}) 

edited2

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title></title> 
    </head> 
    <body> 
     <button type="button" id="123456" class="id-select">Video Number 1</button> 
     <button type="button" id="654321" class="id-select">Video Number 2</button><br> 
     <script src="path/jquery.js"></script> 
     <script> 
      $(function(){ 
       $(document.body).on("mouseup",function(e){ 
        var _e = e.target; 
        if(typeof _e.id !== "undefined" && !isNaN(+_e.id)){ 
         var id = _e.id; //this id is you click button 
         //trigger XHR last edited code 

         /* 
         * @parma1 url 
         * @parma2 post parama 
         * @parma3 callback function 
         * @parma4 set return datatype 
         */ 
         $.post("/"+id+"/videos",{}, 
          function(data){ 
          console.log(data); 
         }, "text");//return datatype:json,html,xml,text 
        } 
       } 
      }); 
     </script> 
    </body> 
</html> 
+0

Können Sie mir Jquery zeigen? – LetTheWritersWrite

+0

@LetTheWritersWrite Ich gebe Ihnen immer jquery Code, aber Sie können nicht verstehen, hier gibt Ihnen Beispiele vollständig – Carson

+0

danke. Ich habe Sie aufgestuft, aber jemand anders wurde abgelehnt. – LetTheWritersWrite

1

Sie müssen Javascript verwenden, um die Benutzer "ID" Auswahl (Schaltfläche) zu setzen und dann diese ID zu Ihrem "Backend" Anfrage/Link, sobald Sie bereit sind.

Hier ist ein einfaches Beispiel mit jQuery:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title></title> 
    </head> 
    <body> 

     <button type="button" data-id="123456" class="id-select">Video Number 1</button> 
     <button type="button" data-id="654321" class="id-select">Video Number 2</button><br> 

     <br> 
     <button type="button" class="watch-video">Watch Video</button> 

     <br> 

     <div id="selected"></div> 

     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> 
     <script> 
      $(function(){ 
       var id = 0; 
       $('#selected').html('You not selected the id yet.'); 

       $('.id-select').click(function(){ 
        id = $(this).data('id'); 
        $('#selected').html('Selected video id: '+id); 
       }); 

       $('.watch-video').click(function() { 
        window.location.href = '/'+id+'/videos'; 
       }); 
      }); 
     </script> 
    </body> 
</html> 
Verwandte Themen