Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazanie wartości statycznej z np. diva do JS i wykonanie zapytania w PHP
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
adam1024
Plik search.php
Kod
<?php

header('content-type: application/json; charset=utf-8');
$searchResults= array("Article 1", "Article 2", "Article 3");
echo $_GET['callback'] . '('.json_encode($searchResults).')';

?>


example.js
Kod
(function() {
    main();
    function main() {
        jQuery(document).ready(function($) {
            $.ajax({
                type: 'post',
                dataType: 'jsonp',
                crossDomain: true, // Shouldent be neccesary.
                url: 'http://example.com/search.php',
                data: { value: '123' },
                cache: false,
                success: function(returndata) {
                    $('#widget').html(returndata);
                }
            });
        });
    }
})();


Kod
<script src="http://example.com/widget.js" type="text/javascript"></script>
<div id="widget" data-value="562"></div>



Jak mogę pobrać i przesłać do search.php wartosc data-value z #widget?
aras785
Cześć.

Żeby pobrać wartość data-value to używasz funkcji attr (ew. data) czyli:

  1. var data = $('div#widget').attr('data-value');


no i później robisz tak samo jak przy wysyłaniu 'posta' czyli ajaxem smile.gif
adam1024
a odebrać to po stronie skryptu php mam jaki $_POST['data']?
aras785
  1. (function() {
  2. main();
  3. function main() {
  4. jQuery(document).ready(function($) {
  5. var data_value = $('div#widget').attr('data-value');
  6. if(data>0)
  7. {
  8. $.ajax({
  9. type: 'post',
  10. dataType: 'jsonp',
  11. crossDomain: true, // Shouldent be neccesary.
  12. url: 'http://example.com/search.php',
  13. data: { data: data_value },
  14. cache: false,
  15. success: function(returndata) {
  16. $('#widget').html(returndata);
  17. }
  18. });
  19. });
  20. }
  21. };
  22. });


i w search.php odbierasz to pod $_POST['data'];
adam1024
po stronie skryptu php, wartość nie jest poprawnie odbierana :/ tak jakby nie ma w ogóle przesłania danych przez tego POST'a
aras785
widget.js

  1. $(document).ready(function($) {
  2. $('div#widget').each(function(index){
  3. if($(this).attr("data-value")!='')
  4. {
  5. var data_value = $(this).attr("data-value");
  6.  
  7. $.ajax({
  8. method: "POST",
  9. url: "search.php",
  10. data: { data: data_value }
  11. })
  12. .done(function( html ) {
  13. $('div#widget[data-value="'+data_value+'"').html(html);
  14. });
  15. };
  16. })
  17.  
  18. })


index.php

  1. <script src="jquery.js" type="text/javascript"></script>
  2. <script src="widget.js" type="text/javascript"></script>
  3. <div id="widget" data-value="562"></div>
  4. <div id="widget" data-value="1221"></div>


search.php

  1. <?php
  2. if(isset($_POST['data']) AND !empty($_POST['data']))
  3. {
  4. echo 'Numer: '.$_POST['data'];
  5. }else
  6. {
  7. echo '';
  8. }
  9.  
  10. ?>


wynik:

  1. Numer: 562
  2. Numer: 1221
aras785
to dodaj wpisy + sprawdź czy search.php masz w tej samej domenie wink.gif
adam1024
search.php jest w tej samej domenie, problem pojawia się gdy chcę przekazać ten widżet na innej podstronie :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.