Odesilani formulare – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Odesilani formulare – JavaScript, AJAX, jQuery – Fórum – Programujte.comOdesilani formulare – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
tribalcz0
Super člen
10. 5. 2013   #1
-
0
-

ahoj mam problem odesilam formular bez noveho nacitani vse funguje spravne pod formularem se mi ukaze co odeislam ale jakmile to ma php schroupat a poslat do db tak najednou nic

a script jquery

$(document).ready(function(){
	$('button').click(function() {
		$.post("comment.php",
			{ 	name: $('#name').val(),
				email: $('#email').val(),
				text: $('#text').val()
			}, function(data){
				var html = '<ul>';
				html += '<li><div id="posted_name">Autor: '+ $('#name').val() +'</div>';
				html += '<div id="posted_text">'+ $('#text').val() +'</div></li>';
				html += '<ul>';

				$('.comments').append($(html));
			}
		);

		return false;
	});
});

 formular


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	<title>Tvorba požadavku POST</title>
		<link rel="stylesheet" href="styl.css" type="text/css" />

		<script src="js/jquery.js" type="text/javascript"></script>
		<script src="js/zpracuj.js" type="text/javascript"></script>
	</head>
	<body>
		<div id="form_style" class="form">
			<form id="form" name="form" method="post" action="comment.php">
				<h1>Přidejte komentář</h1>
				

				<label>Jméno<span class="small">Napište své jméno</span></label>
				<input type="text" name="name" id="name" />
				<label>Email<span class="small">Napište svůj e-mail</span></label>
				<input type="text" name="email" id="email" />
				<label>Text zprávy<span class="small">Napište svou zprávu</span></label>
				<textarea name="text" rows="5" id="text"></textarea>

				<button type="submit" name="submit">Komentovat</button>
			</form>
		</div>
		<div class="comments"></div>
	</body>
</html>

 zpracujici script

<?php
    include "./connect.php";
    
    if (isset($_POST['submit'])) {
        $nick = mysql_real_escape_string($_POST['name']);
        $email = mysql_real_escape_string($_POST['email']);
        $koment = mysql_real_escape_string($_POST['koment']);
        
        if($nick==""){
            echo 'neyl vyplněn nick';
        }
            else {
                $sql = mysql_query("INSERT INTO koment VALUES('','$nick','$email','$koment')") or die (mysql_error());
                echo'komentář byl úspěšně odesán';
            }
    }
?>
Nahlásit jako SPAM
IP: 178.209.131.–
Reklama
Reklama
Nefaritus
~ Redaktor
+2
Posthunter
15. 5. 2013   #2
-
0
-

#1 tribalcz
No a kde by ten PHP skript vzal

$_POST['submit']

když ho nemáš v odesílaných datech? :)

name: $('#name').val(),
email: $('#email').val(),
text: $('#text').val()
Nahlásit jako SPAM
IP: 212.4.138.–
tribalcz0
Super člen
15. 5. 2013   #3
-
0
-

sem v jquery zacatecnik  tak presne nevim ale  kdyz tam mam $_POST comment.php tak by to melo predavat data nebo ne mohl by jsi mi distak napsat jak to ma vypadat????

Nahlásit jako SPAM
IP: 178.209.131.–
Řešení
Nefaritus
~ Redaktor
+2
Posthunter
17. 5. 2013   #4
-
0
-
Vyřešeno Nejlepší odpověď

#3 tribalcz
No z PHP bych vyhodil tu podmínku

if (isset($_POST['submit'])) {

Input v HTML bych změnil z typu button na typ submit a v jQuery bych změnil event na odesílání dat na:

$('form#form').submit(function() {
Nahlásit jako SPAM
IP: 212.4.138.–
tribalcz0
Super člen
17. 5. 2013   #5
-
0
-

takže pokud to chápu správně jediné co v php zůstane je skript odesílající data databzizi tj. $sql = mysql_query("INSERT INTO koment VALUES('','$nick','$email','$koment')") or die (mysql_error());

  echo'komentář byl úspěšně odesláno 

o kontrolu se vlastně postará script jquery a zároveň scriptu php řekne jaká data odeslat 

takže script by měl potom vypadat takto???

omlouvam se pokud je tam blbě zapsaná funkce validace ale sem v tom novy

$(document).ready(function(){

$('form#form').submit(function() {
  $.post("comment.php",
   {  name: $('#name').val(),
    email: $('#email').val(),
    text: $('#text').val()
   }, function(data){
    var html = '<ul>';
    html += '<li><div id="posted_name">Autor: '+ $('#name').val() +'</div>';
    html += '<div id="posted_text">'+ $('#text').val() +'</div></li>';
    html += '<ul>';

    $('.comments').append($(html));
   }
  );

  return false;
});

$('form :input').blur(function() {
  if ($(this).hasClass('required')) {
   if (this.value == '') {
    $(this).addClass('error');
    $(this).nextUntil('p#info')
        .text('Toto pole je povinné!')
        .css('color', 'red');
   }else{
    $(this).removeClass('error');
    $(this).nextUntil('p#info')
        .text('O.K.')
        .css('color', 'green');
   }

   if($('input#cpass1').val() != '') {
    if($('input#cpass1').val() != $('input#cpass2').val()) {
     $('input[id*="cpass"]').addClass('error');
     $('input[id*="cpass"]').nextUntil('p#info')
             .text('Hesla se neshodují­!')
             .css('color', 'red');
    }else{
     $('input[id*="cpass"]').removeClass('error');
     $('input[id*="cpass"]').nextUntil('p#info')
             .text('O.K.')
             .css('color', 'green');
    }
   }
  }
});

});
Nahlásit jako SPAM
IP: 178.209.131.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý