въпрос за ajax и пост

Pro_Lamer4e

Registered
вече 2 дена си играя и немога да подкарам тази пост форма да работи с какъвто и да ajax някой може ли да ми помогне ето и кода

Код:
<?php
if(isset($_POST['submit'])){
$ot = mysql_real_escape_string($_POST['ot']);
$from = mysql_real_escape_string($_POST['from']);
$pozdrav = mysql_real_escape_string($_POST['pozdrav']);
$ip = $_SERVER["REMOTE_ADDR"];
if($ot == null  || $pozdrav == null){
$error = '<div class="error"><p><center><strong>Всички полета са задължителни!</strong></p></center></div>';
}else{
date_default_timezone_set('Europe/Sofia');
$time = time();
$now = date("j.n.Yг в H:i:sч",$time);
$query = "INSERT INTO pozdravi VALUES('','$ot','$from','$pozdrav','$now','$ip');";
$result = mysql_query($query);
if(!$result){echo '<span style="color:red">Поздравите са спряни за момент!</span>';}else{
$success2 = '<div class="success"><p><center><strong>Вашият Поздрва е побликуван!!! Участвай в кастинга за DJ, докато е време":):) <a href="/kandidatura" title="">Кандидатура за DJ</a></strong></p></center></div>';
}}}
?>
<div class="error"><div align="center"><strong>Поздрави се пишат колкото пъти желаете.<br>
Поздравите НЕ трябва да съдържат цинизми!<br>
Поздравите трябва да бъдат кратки и ясни!</strong><br><br>
</div></div>
<div align="center" class="style1"><?php echo "$success2 $error"; ?></div><br><br>
<center><form name="form1" method="post" action="">
От Кого:<br>
<input type="text" name="ot" value="">
<br>
За Кого:<br>
<input type="text" name="from" value="">
<br>
Вашият поздрав:<br>
<textarea name="pozdrav" rows="4" cols="50"></textarea>
<br><br>
<input name="submit" type="submit" value="Изпрати поздрава">
</form>
 
Как точно пускаш ajax заявката, че да субмитва бутона? Тоя фрагмент нещо не ми се струва да е писан въобще за ajax.
 
Почти всеки не писан за AJAX код, лесно може да се преработи по подобен начин
Код:
<?php
error_reporting(E_ERROR);
//isAJAX?
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){		
	$ot = mysql_real_escape_string($_POST['ot']);
	$from = mysql_real_escape_string($_POST['from']);
	$pozdrav = mysql_real_escape_string($_POST['pozdrav']);
	$ip = $_SERVER["REMOTE_ADDR"];
	if($ot == null  || $pozdrav == null){
		echo '<div class="error"><p><center><strong>Всички полета са задължителни!</strong></p></center></div>';
	} else {
		date_default_timezone_set('Europe/Sofia');
		$time = time();
		$now = date("j.n.Yг в H:i:sч",$time);
		$query = "INSERT INTO pozdravi VALUES('','$ot','$from','$pozdrav','$now','$ip');";
		//$result = mysql_query($query);
		$result = true;
		if(!$result){
			echo '<span style="color:red">Поздравите са спряни за момент!</span>';
		} else {
			echo '<div class="success"><p><center><strong>Вашият Поздрва е побликуван!!! Участвай в кастинга за DJ, докато е време":):) <a href="/kandidatura" title="">Кандидатура за DJ</a></strong></p></center></div>';
		}
	}
} else {
	header('content-type:text/html; charset=utf8');
	?>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
	<div class="error"><div align="center"><strong>Поздрави се пишат колкото пъти желаете.<br>
	Поздравите НЕ трябва да съдържат цинизми!<br>
	Поздравите трябва да бъдат кратки и ясни!</strong><br><br>
	</div></div>
	<div align="center" class="style1" id="message"></div><br><br>
	<center><form name="form1" id="form1" method="post" action="" onsubmit="$.post($('#form1').attr('action'), $('#form1').serialize(), function(data) {$('#message').html(data)}); return false;">
	От Кого:<br> 
	<input type="text" name="ot" value="">
	<br>
	За Кого:<br>
	<input type="text" name="from" value="">
	<br>
	Вашият поздрав:<br>
	<textarea name="pozdrav" rows="4" cols="50"></textarea>
	<br><br>
	<input name="submit" type="submit" value="Изпрати поздрава">
	</form>
	<?php
}
Поздрави.
ps. коментирал съм изпълнението на заявката, понеже при мене нямам такава база
 
така пак не работи , пак ми презарежда страницата , но и не записва нищо в базата
 
http://home.7zaz.com/ajaxform/ajaxform.php
Преписвай внимателно и виж послеписа от горният пост.
Ако искаш смени събмит инпута с бутон и обработи събитието на "онклик"
Поздрави.
 
така се получиха нещата ама ако ми кажеш сега как да го преработа за да ми изважда статус че поздрава е пуснат ще е идялно :)
Код:
 <script>
function ajax_post(){
    // Create our XMLHttpRequest object
    var hr = new XMLHttpRequest();
    // Create some variables we need to send to our PHP file
    var url = "pozdravi.php";
    var ot = document.getElementById("ot").value;
    var from = document.getElementById("from").value;
	var pozdrav = document.getElementById("pozdrav").value;
    var vars = "ot="+ot+"&from="+from+"&pozdrav="+pozdrav;
    hr.open("POST", url, true);
    // Set content type header information for sending url encoded variables in the request
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    // Access the onreadystatechange event for the XMLHttpRequest object
    hr.onreadystatechange = function() {
	    if(hr.readyState == 4 && hr.status == 200) {
		    var return_data = hr.responseText;
			document.getElementById("status").innerHTML = return_data;
	    }
    }
    // Send the data to PHP now... and wait for response to update the status div
    hr.send(vars); // Actually execute the request
    document.getElementById("status").innerHTML = "processing...";
}
</script>
</head>
<center>
От Кого: <br><input id="ot" name="ot" type="text">  <br>
За Кого: <br><input id="from" name="from" type="text"> <br>
Поздрав с песен: <br><input id="pozdrav" name="pozdrav" type="text"> <br>
<input name="myBtn" type="submit" value="Изпрати поздрава" onclick="ajax_post();"> <br></center>
<div id="status"></div>
 
Понеже мога само да гадая какво има в pozdravi.php, там където записваш нещата в базата, при успешен запис сложи едно echo "Каквото искаш съобщение" и би трябвало да се появи в див-а за съобщения
Код:
<div id="status"></div>
Този див имам предвид.
Поздрави.
 

Back
Горе