Skocz do zawartości
TeeZ

Przesyłanie danych z JQuery do PHP

Polecane posty

Hej,

 

Aktualnie mam taki kod :

 

<HEAD>

<TITLE> TEST </TITLE>

<script type='text/javascript' src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>



</HEAD>



<form action="index.php" method="post">

    <table class="ipb_table">

        <tbody>

        <tr class="header">

        </tr>

        <tr>

            <td width="42%" align="right"><strong>Imię</strong></td>

            <td align="left"><input type="text" class="input_text" name="imie" size="25" maxlength="24" placeholder="Martin"></td>

        </tr>

        <tr>

            <td width="42%" align="right"><strong>Nazwisko</strong></td>

            <td align="left"><input type="text" class="input_text" name="nazwisko" size="25" maxlength="24" placeholder="Diesel"></td>

        </tr>

        <tr>

            <td align="right"><strong>Wiek</strong></td>

            <td align="left"><input type="text" class="input_text" name="charage" size="25" maxlength="4" placeholder="21 lat"></td>

        </tr>

        <tr>

            <td align="right"><strong>Płeć</strong></td>

            <td align="left">

                <select id="charsex" name="charsex" class="input_text" style="min-width: 158px;">

                    <option value="-1" selected="selected"> </option>

                    <option value="1">Mężczyzna</option>

                    <option value="0">Kobieta</option>

                </select>

            </td>

        </tr>

        </tbody>

    </table>

        

        

<div id="sMale" style="display:none;">

        

            

            <img src="http://localhost/f/public/gp/skins/2.png" class="skins" id="2" style="margin-top: 3px;" />



            <img src="http://localhost/f/public/gp/skins/7.png" class="skins" id="7" style="margin-top: 3px;" />



            

    </div>



    <div id="sFemale" style="display:none;">

        



            <img src="http://localhost/f/public/gp/skins/9.png" class="skins" id="9" style="margin-top: 3px;" />



            <img src="http://localhost/f/public/gp/skins/12.png" class="skins" id="12" style="margin-top: 3px;" />



    </div>

            

            

    <input type="hidden" name="skin" id="sid" value=""><br />

    <div align="center"><input type='submit' class='input_submit' value='Submit' /></div>



</form>

<script type="text/javascript">

jQuery(".skins").click( function () { if( jQuery("#sid").val() != jQuery(this).attr("id")){ jQuery(".skins").fadeTo("fast", 0.33); jQuery(this).fadeTo("fast", 1); jQuery("#sid").val( jQuery(this).attr("id") ); } else { jQuery(".skins").fadeTo("slow", 1); jQuery("#sid").val(""); } });

jQuery("#charsex").change( function () { if(jQuery(this).val() == '1') { jQuery("#sMale").show("slow"); jQuery("#sFemale").hide("slow"); } else if (jQuery(this).val() == '0') { jQuery("#sFemale").show("slow"); jQuery("#sMale").hide("slow"); } else { jQuery("#sMale").hide("slow"); jQuery("#sFemale").hide("slow"); } });



$('.skins').click(function(event) {

$.post('index.php', {'id' : $(this).attr('id')}, function(data) {



})

});



</script>

<?php



        echo $_POST['id'];

                echo "<br/>";

        echo $_POST['imie'];

                echo "<br/>";

        echo $_POST['nazwisko'];

                echo "<br/>";

        echo $_POST['charage'];

                echo "<br/>";

        exit();



?>

 

Z zamierzeniem, aby $_POST['id'] wyrzucił ID obiektu, który użytkownik wybrał. Niestety, tak się nie dzieje, nic nie zostaje odesłane. Co robię źle?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie wiem czy to jest wina tego, ale zgodnie ze standardem w3c ID nie może być cyfrą, spróbuj zamienić id="2" na np: id="img_2" i będziemy sprawdzać dalej, bo ogólnie kod z tego co widzę jest ok

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

bad, bad, bad :) sprawdziłem i ładnie wysyła ID, nie wyświetla Ci się na stronie bo żądanie idzie ajaxem a nie przeładowaniem strony, ale na pewno wysyła ID=2 nawet jak jest zrobione tak jak umieściłeś w pierwszym poście

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wysyła ID, sprawdzałem w konsoli.. Ale jak zrobić aby wyświetliłsięw tym echo po wysłaniu formularza? Na tym mi zależy. :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

no na pewno nie tak. musisz zrobić osobny plik, który będzie obrabiał dane z posta i zwracał w formacie json dane. Następnie te dane musisz gdzieś wyświetlić w zdarzeniu success dla żądania ajax

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
$('.skins').click(function(event) {
$.post('index.php', {'id' : $(this).attr('id')}, function(data) {

}, "json")
});

</script>
<?php echo json_encode(array("id"=>"id"));

 

Próbowałem coś takiego, ale bez rezultatu. Nie znam kompletnie jQuery, nie wiem czego mam się łapać, a potrzebuję tylko to do jednego skryptu.. Spanner, czy mógłbyś podać mi stronę do jakiegoś przykładu, albo gotowca? Od 2 dni nie mogę sobie z tym poradzić.

Probowałem tak jak tu http://api.jquery.com/jQuery.post/ ale nic..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pisałem, że musisz osobny skrypt do tego zrobić. zamień

$('.skins').click(function(event) {
$.post('index.php', {'id' : $(this).attr('id')}, function(data) {

}, "json")
});

</script>

na

 

$('.skins').click(function(event) {
$.post('test.php', {'id' : $(this).attr('id')}, function(data) {
alert(data['id']);
}, "json")
});

</script>

a następnie stwórz plik test.php z zawartością:

<?php 
echo json_encode(array("id"=>"id"));
?>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

no i jest ok, jak chcesz zwrócić wartość to daj "id" => $_POST[ 'id' ]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

a w konsoli wysyła Ci normalnie id=coś ? nigdy nie używałem posta, zawsze się bawiłem $.ajax :P choć niby to to samo...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ogólnie to nawet nie wiem czy dobrze robię, bo zmieniłem formularz również na test.php i nie wiem - tak ma być? Nic w konsoli ( po wysłaniu formularza ) się nie dzieje, przed tak. Pokazuje, że jest POST.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

nie, formularz ma być w index.php a w test ma być tylko przetwarzanie żądania POST

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Próbuję teraz sprawdzić czy jest ok w tym test, zrobiłem tabelę do testu i test.php

<?php
echo json_encode(array("id"=>$_POST[ 'id' ]));
$host = "localhost";
$user = "root";
$pass = "";
$database = "test";
                $connection = @mysql_connect($host, $user, $pass) or die(mysql_error());
                $db = @mysql_select_db($database, $connection) or die(mysql_error());
            
                if(!mysql_query("INSERT INTO `test` (
`id`
)
VALUES (
".$_POST['id']."
);");)
{ echo mysql_error() };
 

 

Niestety, nawet nie wysyła rekordu..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

jakiś błąd albo coś? nie chce mi się tego robić za Ciebie żeby sprawdzić co jest nie tak :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Żadnego błędu nie ma. :girldevil:

 

Mam! Przeszedłem na ten test.php, a tam jednak był błąd składni. :P

Edytowano przez TeeZ

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.