odeslani dalsich parametru na handle

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

Dobrý den,
prosím o radu. Mám dva select boxy, kde chci přes AJAX předávat položky z levého select boxu do pravého přes tlačítka submit.
Ale vybraná data se mi přes AJAX nedaří předat do handle metody. Poradíte jak předat? Děkuji.
Javascript:

<script type="text/javascript">

    function updateSnippets(snippets) {
        for (var id in snippets) {
                $('#' + id).html(snippets[id]);
        }
    }

    $('#'+{$control["editForm-remove_network"]->htmlId} + ', #'+ {$control["editForm-add_network"]->htmlId}).live("click", function (event) {

        event.preventDefault();

        id = $('#'+{$control["editForm-id"]->htmlId}).val();
        selectedNetworksLeft = $('#'+{$control["editForm-all_network_id"]->htmlId}).val();
        selectedNetworksRight = $('#'+{$control["editForm-network_id"]->htmlId}).val();

    $.ajax
    ({
        type: "GET",
        url: '?do=networkLoad',
        dataType: 'json',
        async: false,
        data: '{"id": "' + id + '", "selectedNetworksLeft" : "' + selectedNetworksLeft + '", "selectedNetworksRight" : "' + selectedNetworksRight + '"}',
        success: function(payload) {
                updateSnippets(payload.snippets);
            }
    })



    });

</script>

a v presenteru mám:

<?php
        function handleNetworkLoad($id, $all_network_id, $network_id) {
// zde bych chtel zpracovat vybrane polozky ze select boxu v promenych $all_network_id a $network_id
            $this->payload->tariffacls = array();
            $form = $this->getComponent("editForm"); // our form

            //TODO

            $this->invalidateControl("tariffaclselectsnippet"); // invalidate ajax snippet

        }
?>

Editoval tomik007 (14. 5. 2013 12:28)

Tabetha
Člen | 140
+
0
-

a takto ti to pôjde?

<script type="text/javascript">

    function updateSnippets(snippets) {
        for (var id in snippets) {
                $('#' + id).html(snippets[id]);
        }
    }

    $('#'+{$control["editForm-remove_network"]->htmlId} + ', #'+ {$control["editForm-add_network"]->htmlId}).live("click", function (event) {

        event.preventDefault();

        id = $('#'+{$control["editForm-id"]->htmlId}).val();
        selectedNetworksLeft = $('#'+{$control["editForm-all_network_id"]->htmlId}).val();
        selectedNetworksRight = $('#'+{$control["editForm-network_id"]->htmlId}).val();
var link = {link networkLoad!};
    $.ajax
    ({
        type: "GET",
        url: link,
        dataType: 'json',
        async: false,
        data: { id: id ,
		selectedNetworksLeft: selectedNetworksLeft ,
		selectedNetworksRight: selectedNetworksRight
		},
        success: function(payload) {
                updateSnippets(payload.snippets);
            }
    })



    });

</script>

Editoval Tabetha (14. 5. 2013 13:45)

tomik007
Člen | 7
+
0
-

Ani tak to nefunguje. Ono se na metodu handleNetworkLoad dostanu v pořádku, ale nevím jak si tam mám předat parametry $all_network_id a $network_id.

Tabetha
Člen | 140
+
0
-

a ešte ako vyzerá ten tvoj request

tomik007
Člen | 7
+
0
-

Nakonec jsem to obešel přes javascript podle https://componette.org/search/?…

<script>
    $('#'+{$control["editForm-remove_network"]->htmlId} + ', #'+ {$control["editForm-add_network"]->htmlId}).live("click", function (event) {
      $(this).ajaxSubmit();
      return false;
    });
</script>

Ten mi už hodnoty předá tak jak potřebuju.

Moc díky!

Editoval tomik007 (16. 5. 2013 12:39)