ďťż
Podstrony
|
telcocafeWitamnapisałem sobie taki kodzik: var changed = false; var bid; var text; function editBlockName(blockID, blockHeader) { var element = 'set'+blockID; var id = document.getElementById(element); if(!changed) { text = id.innerHTML; id.innerHTML = '<input type="text" id="newValue" name="setBlockName" value="' + id.innerHTML + '" />' + '<img src="templates/admin/default-images/save_small.png" onclick="java script:save(' + blockID + ')" />' + '<img src="templates/admin/default-images/cancel.png" onclick="java script:editBlockNameCancel(' + blockID + ')" />'; changed = true; } else { return false; } } function editBlockNameCancel(blockID) { var element = 'set'+blockID; var id = document.getElementById(element); id.innerHTML = text; changed = false; } function ajax_request(url, data) { var myAjax = new Ajax.Request( url, {method: 'post', parameters: data, onComplete: show} ); } function save(blockID) { bid = blockID; ajax_request('update.php', 'blockID=' + blockID + '&newValue=' + $F('newValue')); } function reportError(request) { alert(request); } function show(req) { $('set'+bid).innerHTML = $F('newValue'); } jego zadanie jest całkiem proste, chodzi i o dynamiczne zmiany nazwy bloków, tzn że klika się na ikonke edycji, zamiast nazwy bloku pokazuje się pole tekstowe i opcje: zapisz, anuluj. Problem tkwi w tym że nic sie nie zapisuje, jakby nie wysyłało danych do pliku update.php fragment update.php: <? include('config.php'); include('mysql.php'); if(isset($_POST['newValue'])) { $newValue = $_POST['newValue']; $blockID = $_POST['blockID']; mysql_query('update blocks set header = "'.$newValue.'" where id = "'.$blockID.'"') or die(mysql_error()); } ?> prosze o pomoc! Użytkownik PiKey edytował ten post 19 lipiec 2008, 08:03 Hmm... Używasz Firefoksa? Zainstaluj dodatek FireBug. On może wyświetlać wysyłane i odbierane dane przekazywane przez Ajax. Będziesz wiedział, czy coś jest zwracane. BTW Nie filtrujesz danych POST? zamiast function ajax_request(url, data) { var myAjax = new Ajax.Request( url, {method: 'post', parameters: data, onComplete: show} ); } daj function ajax_request(url, data) { var myAjax = new Ajax.Request( url, {method: 'post', parameters: data, onComplete: show, onSuccess: function(transport) { alert(transport.responseText); }} ); } i zobacz co wywala. Hmm... Używasz Firefoksa? Zainstaluj dodatek FireBug. On może wyświetlać wysyłane i odbierane dane przekazywane przez Ajax. Będziesz wiedział, czy coś jest zwracane. BTW Nie filtrujesz danych POST? filtruje tylko to było tak testowo żeby wogóle zobaczyć czy działa :) |
|||
Sitedesign by AltusUmbrae. |