Na mojej stronie głównej mam textarea chcę go zapisać do bazy danych. W tym celu wywołuję kilka funkcji które znajdują się w kilku plikach. Problem polega na tym że gdy odczytuję parametr z tablicy $_POST to jest pusty.
Do bazy zostaje zapisany pusty rekord. Korzystam z gotowych przykładów z książki AJAX i PHP. Spędziłem kilka godzin szukając rozwiązania mojego problemu nie znalazłem dlatego zwracam się o pomoc do Was.
function startRequest()
{
var url = "save.php";
var params = '';
var tekst = document.getElementById("tresc").value;
var btn1 = document.getElementById("btn1");
//btn1.value = tresc.innerHTML;
btn1.disabled = true;
params = "db_text=" + encodeURIComponent(tekst);
alert(params)
startPOSTRequest(url, params, onComplete, onEnd);
btn1.disabled = false;
}
function startPOSTRequest(url, params, onComplete, onEnd)
{
var XMLHttpRequestObject = getXMLHttpRequestObject();
if(XMLHttpRequestObject){
XMLHttpRequestObject.open("POST", url);
XMLHttpRequestObject.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded');
XMLHttpRequestObject.onreadystatechange = function ()
{
if(XMLHttpRequestObject.readyState == 4){
if(XMLHttpRequestObject.status == 200){
var responseXML = XMLHttpRequestObject.responseXML;
var responseText = XMLHttpRequestObject.responseText;
onComplete(responseText, responseXML);
}
delete XMLHttpRequestObject;
onEnd();
}
}
alert(params);
XMLHttpRequestObject.send(params);
}
}
<?php
$link = mysql_connect('' , '' , '') or
die("nie udało się połączyć z bazą"); //połączenie z bazą danych
$db_id = '';
$db_link_nr = '1'; //link_nr - numer linku (strona główna ma numer 1)
$db_desc = 'Strona główna'; //desc - opis pola (strona główna)
$db_text = $_POST['db_text']; //text - to co będzie widoczne na stronie
$db_data = ''; //data - data zapisania rekordu
if(!$db_selected)
{
}
$zapytanie = "INSERT INTO `main`(`id`, `link_nr`, `desc`, `text`, `data`) VALUES
('$db_id', '$db_link_nr', '$db_desc', '$db_text', '$db_data')";
?>