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
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
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
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)