Formularz nie jest wysyłany

Odpowiedz Nowy wątek
2011-08-16 12:10
Que
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

Pozostało 580 znaków

2011-08-16 12:22
bs
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.

Pozostało 580 znaków

2011-08-16 12:27
Que
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> 
edytowany 3x, ostatnio: Que, 2011-08-16 13:29

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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