Formularz nie jest wysyłany

0

Witam mam taki problem, napisałem skrypt w ajax'sie

	<script language="javascript" type="text/javascript">
		$(document).ready(function() {
			$('#button').click(function() { 
				$.ajax({
			        url : '<?php echo 'http://'.$_SERVER['HTTP_HOST'].'/app/portal/register' ?>',
			        data: 'n=2&k=3',
			        type: 'POST',
			        success: function(data) {
			            alert(n);
			        }
			    });
			});		
		});
	</script>

formularz html

	<form action="#" method="post" id="register">
		<table cellspacing="0">
			<tr>
				<td>Name</td>
				<td><input type="text" name="name" id="name" value="" /></td>
			</tr>
			
			<tr>
				<td></td>
				<td><input type="button" value="Register" id="button"/></td>
			</tr>
		</table>
	</form>

W tym samym pliku mam linijkę sprawdzającą tablicę POST:

 <?php var_dump($_POST); ?>

Dodam jeszcze, że dostaję błąd JS: Błąd: n is not defined
Plik źródłowy: http://localhost/app/portal/register
Wiersz: 13

1

A gdzie masz definicję zmiennej n w JS? To, że masz taką zmienną w URL-u, do którego kierujesz żądanie, nie ma znaczenia. Zmienna n nie jest automatycznie ustawiana w JS. W PHP zresztą też nie powinna być, bo register_globals powinieneś mieć wyłączone (ze względów bezpieczeństwa).

W polu success opcji ajaxowych masz funkcję anonimową, która wyświetla n. Taka zmienna nie jest zdefiniowana i stąd dostajesz taki (słuszny!) błąd.

0

Dzięki za pomoc jednak dane dalej nie są wysyłane postem przez ajaxa

 
<script language="javascript" type="text/javascript">
		$(document).ready(function() {
			$('#button').unbind().bind('click', function() { 
				var name = $('#name').val();
				$.ajax({
					type: 'POST',
					url: "<?php echo 'http://'.$_SERVER['HTTP_HOST'].'/app/portal/register'; ?>",
					data: "name="+name,
					success: function(html) { alert(name); }
				});
			});		
		});
	</script>

Znalazłem taki skrypt jednak ciężko mi zrozumieć dlaczego po usunięciu: $('#response').html(response); lub po ustawieniu stylu display:none, dla

dane nie są wysyłane do tablicy $_POST. Dodam jeszcze, że kiedy kod jest nie zmieniany formularz jest powielany, nie rozumiem dlaczego:</p>
 
<input type="text" id="name"/>
<input type="button" onclick="sendData()" value="wyslij"/>
<div id="response"></div>

<script type="text/javascript">
function sendData() {
	$.ajax({
		url:"<?php echo 'http://'.$_SERVER['HTTP_HOST'].'/app/portal/register'; ?>", 
	  	type:'POST', 
		data:'name='+$('#name').val(),
  		success: function(response) {
    		$('#response').html(response);
  		}
	});
}
</script> 

1 użytkowników online, w tym zalogowanych: 0, gości: 1