AJAX odkaz na action v .js souboru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Muhahe
Člen | 79
+
0
-

Ahoj,

chtěl jsem se zeptat jestli je možné AJAXem volat action presenteru z .js souboru. Mam javascriptovy soubor obsahujici obsluhu jqueryUI dialogu.

<script>
function showProjectDeleteConfirm(projectName,projectId){
    $("#deleteProjectDialog").dialog({
        resizable: false,
        height: 140,
        modal: true,
        title: "Delete project?",
        open: function(){
          var innerText = "Project " + projectName + " will be deleted.";
          $(this).html(innerText);
        },
        buttons:{
            "Confirm" : function(){

                --------------------
				zde volat actionDeleteProject
				--------------------
                $(this).dialog("close");
            },
            Cancel: function(){
                $(this).dialog("close");
            }
        }
    })
}
</script>

A potreboval bych zavolat tento action, s tim ze bych mu v predal ID polozky ktera ma byt smazana

<?php

    public function actionDeleteProject() {
        $id = $this->getHttpRequest()->getPost('id_project_delete');
        $this->projektyRepository->deleteProject($id);
        $this->terminate();
    }

?>

Editoval Muhahe (13. 5. 2015 16:49)

Lukeluha
Člen | 130
+
0
-
var url = {link presenter:deleteProject};
$.post(url, { id_project_delete : tve_id });

Edit: teď jsem si všimnul, že píšeš o Ajaxu, tak v tom případě bych využil knihovny:„https://componette.org/search/?q=vojtech-dobes%2Fnette-ajax-js“ od Vojty Dobeše a volal bych poté toto:

var url = {link presenter:deleteProject};
$.nette.ajax({
	url: url,
	data: { id_project_delete : tve_id }
)};

Edit2: pokud to máš v externím souboru, tak jak píše @DavidMatějka buď využít data atributů, anebo na tlačítko v modálním okne přidat onclick="doSomething({link presenter:deleteProject)"

Editoval Lukeluha (14. 5. 2015 10:28)

David Matějka
Moderator | 6445
+
+3
-

@Lukeluha to nebude fungovat v js souboru

@Muhahe na tohle jsou dobre data-* atributy, tedy ten odkaz napises v latte do data atributu a v js ho prectes

Muhahe
Člen | 79
+
0
-

Diky moc za inspiraci. Neco podobneho me napadlo, ale prislo mi to trochu jako prasecina.