2017-02-04 7 views
0

Ich versuche eine Seite mit ein paar Schiebereglern zu erstellen. Wenn Sie diese Schieberegler ändern, möchte ich die Daten ändern, die aus meinem Modell kommen und die Ansicht aktualisieren.Phalcon PHP Range Eingabe

Ich weiß, dass Sie dies lösen können, indem Sie ajax in regulären PHP verwenden. Aber ich bin zu unerfahren, um dies innerhalb des Phalcon-Rahmens zu lösen. Phalcon\Forms Unterstützt <input type="range" /> nicht. Also habe ich es in meine Volt-Datei eingefügt: <input id="number_of_rooms" name="number_of_rooms" type="range" />.

Ich nehme an, der nächste Schritt besteht darin, eine JS Datei mit einem Slider Event Handler zu erstellen, die einen Ajax-Aufruf an meinen Controller erstellt. Ich habe den Event-Handler erstellt, aber wie man sich dem Ajax-Call nähert, bereitet mir Probleme.

$('#number_of_rooms').on("change mousemove", function() { 
    // $.ajax({ 
    //  method: "POST", 
    //  url: "controllers/IndexController.php", 
    //  data: { value: this.value } 
    // }) 
    console.log("value: " + this.value); 
}); 

Aber wie bekomme ich diese Daten zurück zu meinem Controller, um mein Modell zu ändern, weiß ich nicht. Hilfe wäre sehr geschätzt.

Lassen Sie mich wissen, wenn ich mich völlig falsch annähere. Vielen Dank!

Antwort

0
$.ajax({ 
     type:'POST', 
     url: "{{ url() }}/your_path", (you create this path in file route) 
     data: { value: this.value }, 
     async: false, 
     dataType: "json", 
     success:function(result){ 
      // the result will return from the controller 
      // use the result to update your modal content 

     }, 
     error: function(){ 
      // got error from controller 
      // Do something 
     } 
    }); 

In Ihrer Route

$backend->addPost('/your_path', array(
    'controller' => 'yourcontroller', 
    'action' => 'yourmethod' 
)); 

Vergessen Sie nicht yourController-Controller erstellen und fügen Sie yourmethod dort

Hoffnung diese Hilfe

0

Da Sie die Daten über Ajax senden dann die POST -ed Daten werden im JSON-Format sein, Sie können es mit dieser-> Anfrage-> getPost() erfassen und in Ihren getPost() - Handler zur Änderung übergeben. Zum Beispiel Daten zurückgegeben werden value: val, dann erfassen Sie es mit $variable = $this->request->getPost('value') in Ihrem Controller