ďťż

[ajax] nie zapisuje danych w mysql biblioteka prototype

       

Podstrony


telcocafe

Witam
napisał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 :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.