Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] brak poprawnej akcji
Forum PHP.pl > Forum > XML, AJAX
kasek
Witam

Kod JS wygląda tak:

$("#login_button").click(function() {

var action = $("#loginform").attr('action');
var form_data = {password:haslo}

$.ajax({
type: "post",
url: action,
data: form_data,
success: function(data)
{
if(data == 'ok')
{

$("#login").slideUp('slow', function() {
$("#message").html("Zalogowałeś się pomyślnie!");
});
}
else{
alert(data)
$("#message").html("Niepoprawne hasło");
}
}
});

return false;
});

W skrócie - kod spodziewa się komunikatu OK , jeśli taki w data zostanie przesłany powinien wyświetlić komunikat o zalogowaniu. - mimo że dostaje OK tak się nie dzieje.

A wszystko działa tak jak powinno tylko wtedy kiedy w pliku PHP nie wykonuję funkcji connection()

PLIK PHP Z UPROSZCZONYM PRZYKŁADEM

  1. if (isset($_POST['password']))
  2. {
  3. require('../inc/connect.php');
  4. connection();
  5. echo'ok';
  6. }



W pliku connect.php w którym znajduje się funkcja connection mam:

<?php
/******************************************************
* polaczenie.php
* Konfiguracja połączenia z bazą danych
******************************************************/
function connection() {
require ('mysql_config.php');
$mysql_server = $server;
$mysql_admin = $admin;
$mysql_pass = $pass;
$mysql_db = $db;
mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
or die('Brak połączenia z serwerem MySQL.');
mysql_select_db($mysql_db)
or die('Błąd wyboru bazy danych.');
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER 'utf8'");
}

?>


Komunikat zawsze przesyłany jest poprawnie czyli "ok" (widzę w firebugu) , z tym że funkcja ajax musi inaczej go "widzieć" ponieważ dostaję alert ( z napisem ok) z else.
Dlaczego if(data == 'ok') nie jest dla niego ok skoro ja widzę że jest ?

Dzieje się tak tylko kiedy wykonuję w pliku php funkcję connection() :/
Jak sobie wykonam inną funkcję wszystko jest w porządku i zwrot OK jest interpretowany prawidłowo.. gdzie może leżeć problem ?



nospor
Pewnie idzie ci jakiś biały znak, które nie widzisz. np. nagłowek BOM albo spacja albo enter albo inny biały znak.

Zacznik proszę używać BBCODE!
kasek
Cytat(nospor @ 24.01.2012, 14:47:26 ) *
Pewnie idzie ci jakiś biały znak, które nie widzisz. np. nagłowek BOM albo spacja albo enter albo inny biały znak.

Zacznik proszę używać BBCODE!



Faktycznie, jedna spacja za znacznikiem ?> z includowanego pliku i wystarczyło żeby przysiwieć :/
tx nospor
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.