Jump to content
TeeZ

Przesyłanie danych z JQuery do PHP

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Nadal to samo. Zero odpowiedzi.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
$('.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..

Share this post


Link to post
Share on other sites

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"));
?>

Share this post


Link to post
Share on other sites

Ok, tam gra ale w test.php

 

{"id":null}

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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..

Share this post


Link to post
Share on other sites

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

 

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

Edited by TeeZ

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.