Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Z JS do PHP przez AJAX - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: Z JS do PHP przez AJAX (/thread-z-js-do-php-przez-ajax)

Strony: 1 2


Z JS do PHP przez AJAX - sooper - 20-01-2012

Witam, stworzyłem sobie taki oto skrypt.

HTML

Kod PHP:
<html>
<
head>
<
meta charset="utf-8" />
<
title>xxx</title>


<
script type="text/javascript"><!--
$(
document).ready(function() {
  $(
'#crs').submit(function() {

    var 
nm = $('#crs #nm').val();

    $.
ajax({
      
type'post',
      
url'script.php',
      
datanm,
      
beforeSend: function() {

        $(
'#resp').html('Loading...');
      },
      
timeout10000,        
      
error: function(xhrstatuserror) { alert('Error: 'xhr.status' - 'error); },
      
success: function(response) { $('#resp').html(response); }
    });

    return 
false;      
  });
});
--></
script>

</
head>
<
body>
<
div id="resp"></div>

<
form action="script.php" method="post" id="crs">

 
Name: <input type="text" name="nm" id="nm" /><br />

 <
input type="submit" value="submit" />
</
form>
</
body>
</
html


PHP
Kod PHP:
<?php

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

 
$nm $_POST['nm'];

 
$rehtml '<h4>Hy '$nm'</h4>';

}
else 
$rehtml 'Invalid data';

echo 
$rehtml;        // output (return) the response


?>


Problem w tym, że zamiast
Cytat:<input type="text" name="nm" id="nm" /><br />
muszę mieć
Cytat:<div id="nm">wartosc_wygenerowana_przez_js</div>


Pytanie: Czy przy pomocy AJAX'a uda mi się odczytać wartość z DIV'a a następnie przesłać ją do PHP ??


RE: Z JS do PHP przez AJAX - szym - 20-01-2012

Kod:
$('#nm').html();
Tym możesz pobrać zawartość diva

Kod:
<script type="text/javascript"><!--
$(document).ready(function() {
  $('#crs').submit(function() {

    var nm = $('#nm').html();

    $.ajax({
      type: 'post',
      url: 'script.php',
      data: nm,
      beforeSend: function() {

        $('#resp').html('Loading...');
      },
      timeout: 10000,        
      error: function(xhr, status, error) { alert('Error: '+ xhr.status+ ' - '+ error); },
      success: function(response) { $('#resp').html(response); }
    });

    return false;      
  });
});



RE: Z JS do PHP przez AJAX - sooper - 20-01-2012

ok, a jak teraz przesłać tę pobraną wartość przez ajax'a do php ?? Smile


RE: Z JS do PHP przez AJAX - Pedro84 - 20-01-2012

(20-01-2012, 02:46)sooper napisał(a): ok, a jak teraz przesłać tę pobraną wartość przez ajax'a do php ?? Smile
Przecież masz przesyłanie AJAXem w powyższym przykładzie...


RE: Z JS do PHP przez AJAX - sooper - 20-01-2012

Pedro84 zgadza się, jednak zamiast wartości z diva skrypt nic nie przesyła i pojawia się 'Invalid data' :|

Powinno być " Hy (wartość z div)"

Siedzę nad tym cały dzień i nie mogę dojść co jest nie tak ehhh...


RE: Z JS do PHP przez AJAX - szym - 20-01-2012

Nie zauważyłem jednej ważnej rzeczy:
Kod PHP:
<body>
<
div id="resp"></div>

<
form action="script.php" method="post" id="">

 
Name: <input type="text" name="nm" id="nm" /><br />

 <
input type="submit" value="submit" />
</
form>
</
body>
</
html

Jeśli wysyłasz zawartość przez ajax to nie możesz tak definiować <from> bo formularz zostaje wysłany normalnie. Daj np.
Kod PHP:
<form id="crs" onsubmit "return false;"
Daj znać czy coś to pomogło.


RE: Z JS do PHP przez AJAX - sooper - 20-01-2012

Ogólnie dzięki za pomoc Smile

Może napiszę do czego dążę.

Załóżmy że mam formularz logowania, taki jak jest na tym forum.
Składa się on z 2 inputów ( Nazwa oraz hasło użytkownika)

Kod PHP:
<input type="text" name="nazwa" id="nazwa" />
<
input type="text" name="haslo" id="haslo"  /> 

Chciałbym do tego formularza dodać diva, gdzie jego wartość będzie generowana przez JS (generowanie mam już zrobione)

Kod PHP:
<div name="test" id="test>{WARTOŚĆ Z JS}</div> 

i na końcu wysłać wszystko submitem

Kod PHP:
<input type="submit" value="submit" /> 

Po stronie php wartości z inputów odczytamy za pomocą $_POST[]

Jak odczytać wartość DIVA ??




RE: Z JS do PHP przez AJAX - szym - 20-01-2012

Ale co ma być w tym DIV umieszczone? Coś niewidocznego dla użytkownika? Jeśli tak to robisz to za pomocą
Kod PHP:
<input type="hidden" name="nazwa" value="nm" /> 
I wysyłasz wszystko poprzez:
Kod PHP:
$.ajax({
            
type"POST",
            
url"script.php",
            
data: {
                
nm nm.val(),
                
nazwa nazwa.val(),
                                
hasło hasło.val()
        }

                      
success: function(data) {}
}) 
Musi to być koniecznie w ajax zrobione?


RE: Z JS do PHP przez AJAX - sooper - 20-01-2012

W chwili obecnej mam ukrytego input'a, ale istnieją sposoby aby takiego input'a zrobić widocznym i zmienić wartość.

Chodzi mi o coś takiego:

[Obrazek: 123456u.png]
Wartość 12335... jest wygenerowana przez JS. i znajduje się w div'ie

Oczywiście nie musi być w AJAX, ale nie wiem czy inaczej się da to przesłać :|

//poprawione zdjęcie



RE: Z JS do PHP przez AJAX - szym - 20-01-2012

popraw zdjęcie bo nie działa.