Skocz do zawartości

Zdjęcie
- - - - -

Wysyłanie wiadomości AJAX.

ajax javascript formularze html5 php

4 odpowiedzi w tym temacie
  • Zaloguj się, aby dodać odpowiedź
Webseen

    Nowy użytkownik

  • 15 postów
    • Czas spędzony online: 6h 3m 59s
0
Neutralna
  • LocationPoland

Napisano 12 wrzesień 2015 - 07:50

#1

Witam, mam problem z obsługą mojego formularza za pomocą AJAX(jQuery).

Drzewo katalogów: 

/Chat/room.php - Pokój czatowy,

/Chat/send.php - Skrypt php odpowiedzialny za wysyłanie wiadomości do bazy,

/Chat/form.js - Skrypt jQuery odpowiedzialny za obsługę formularza,

/Chat/inc/html_start.php - początki html'owej treści XD.

 

Mój kod: 

/Chat/room.php
<?include('inc/runApp.php');
$variable = '';
if(isset($_SESSION['logged'])){
/*** ROOM ***/
if(isset($_GET['room'])){
$_room = addslashes(htmlspecialchars($_GET['room']));
} else {
$_room = 'home';
}


/*** SHOW MESSAGES ***/
echo '<div id="show" data-room="'.$_room.'">';
$shoutsQ = $db->query("SELECT * FROM  `chat_shouts` WHERE  `room` =  '$_room'");
if($shoutsQ->num_rows>0){
$full = $shoutsQ->num_rows;
$full2 = $full-10;
$shoutsQ2 = $db->query("SELECT * FROM  `chat_shouts` WHERE  `room` =  '$_room' ORDER BY `id` DESC LIMIT 15");
while($shout=$shoutsQ2->fetch_assoc()){
if(strtolower($_SESSION['login']) == strtolower($shout['author'])){
$class = 's s-my';
} else {
$class = 's';
}
$variable = '
<div class="'.$class.'">
<div class="avatar">
<span class="tooltip">
<img src="avatar/default.png" title="">
<span>'.$shout['author'].'</span>
</span>
</div>
<span class="s-content">'.$shout['content'].'</span>
</div>'.$variable;
}
echo $variable;
} else echo '<p>Nie znaleziono żadnych wpisów.</p>';
echo '</div>';


/*** SEND MESSAGE ***/
echo '<form method="POST" id="send" action="send.php">
<input type="text" name="content" placeholder="Treść posta" id="inp-send-text">
<input type="submit" value="&lt;" id="inp-send-sub">
</form>';
}
include('inc/exitApp.php');
?>

form.js
$(document).ready(function(){
	$('form#send').submit(function(event){
		event.preventDefault();
		var cons = $('input[name=content]').val();
		var form = $(this);
		$.ajax({
			'url': form.attr('action'),
			'type': 'post',
			'data': 'content=test',
			'success': function(response){
				alert(response.message + '/' + response.status + '/' + form.attr('action') + '/' + cons);
			}
		});
	});
});
send.php
<?
$nohtml = 1;
include('../inc/runApp.php');
		if(isset($_POST['content'])){
			$_content = addslashes(htmlspecialchars($_POST['content']));
			$_author = stripslashes($_SESSION['login']);
			$_date = date('d/m/Y');
			$db->query("INSERT INTO `chat_shouts` (`content`,`author`,`date`,`room`) VALUES ('$_content','$_author','$_date','$_room')");
			echo 'success';
		}
include('../inc/exitApp.php');
?>
html_start.php
<?
	echo '<!DOCTYPE html>
	<html lang="pl">
		<head>
			<meta charset="UTF-8">
			<title>Czat</title>
			<link rel="stylesheet" href="'.$scriptdir.'css/reset.css">
			<link rel="stylesheet" href="'.$scriptdir.'css/style.css">
			<script src="'.$scriptdir.'js/jquery.min.js"></script>
			<script src="'.$scriptdir.'js/show.js"></script>
			<script src="'.$scriptdir.'form.js"></script>
		</head>
		<body>
			<div class="container">
				<nav>
					<a href="'.$scriptdir.'">Główna</a>
				</nav>';
?>

W czym problem? Wiadomość mi się nie chce wysłać, w alert() wyskakuje mi undefined/undefined/send.php/treść_wiadomości. Nie wiem co tu mogłem zepsuć


  • 0

Yeoman

    Stary wyjadacz

  • 358 postów
    • Czas spędzony online: 6d 19h 43m 48s
169
Znakomita!
  • LocationKatowice

Napisano 12 wrzesień 2015 - 08:26

#2

Spróbuj do 'data' dać form.serialize() :)


  • 0

2ed58r7.png


Webseen

    Nowy użytkownik

  • 15 postów
    • Czas spędzony online: 6h 3m 59s
0
Neutralna
  • LocationPoland

Napisano 12 wrzesień 2015 - 08:33

#3

po co? Przecież w krypcie i tak dałem już ustaloną treść 

'data': 'content=test',

to nic nie zmieni


  • 0

Yeoman

    Stary wyjadacz

  • 358 postów
    • Czas spędzony online: 6d 19h 43m 48s
169
Znakomita!
  • LocationKatowice

Napisano 12 wrzesień 2015 - 08:37

#4

Mówisz że "echo 'success';" się wykonuje ? Jesteś pewny że content zostaje posłany i że skrypt wchodzi w kod który dodaje do bazy ? 


  • 1

2ed58r7.png


Webseen

    Nowy użytkownik

  • 15 postów
    • Czas spędzony online: 6h 3m 59s
0
Neutralna
  • LocationPoland

Napisano 12 wrzesień 2015 - 08:56

#5

tak po stronie php wszystko gra


Masz linka do strony http://webseen-res.xaa.pl/Chat/ 

p.s. wsadziłem send.php i form.js do wsólnego katalogu obok room.php i pozmieniałem ścieżki dostępu w room.php i to też nic nie zmieniło


Dobra naprawiłem, jednak błąd był po stronie php, mimo wszystko dzięki :)


Temat można zamknąć


  • 0





Podone tematy Collapse


Również z jednym lub większą ilością słów kluczowych: ajax, javascript, formularze, html5, php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych