Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][AJAX] Wyświetlanie zależne od select
CiRiO
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.09.2012

Ostrzeżenie: (0%)
-----


Borykam się z pewnym problemem. Opiszę może to na przykładach.
  1. function showPrice(str)
  2. {
  3. var xmlhttp;
  4. if (str=="")
  5. {
  6. document.getElementById("txtHint").innerHTML="";
  7. return;
  8. }
  9. if (window.XMLHttpRequest)
  10. {// code for IE7+, Firefox, Chrome, Opera, Safari
  11. xmlhttp=new XMLHttpRequest();
  12. }
  13. else
  14. {// code for IE6, IE5
  15. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16. }
  17. xmlhttp.onreadystatechange=function()
  18. {
  19. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20. {
  21. document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  22. }
  23. }
  24. xmlhttp.open("GET","includes/price.php?q="+str,true);
  25. xmlhttp.send();
  26. }


  1. $q=$_GET["q"];
  2.  
  3. $dbConnect = mysql_connect ($dbHost, $dbUser, $dbPass) or die ('MySQL connect failed. ' . mysql_error());
  4. mysql_select_db($dbName) or die('Cannot select database. ' . mysql_error());
  5.  
  6. $sql = "SELECT * FROM pfase_server, pfase_settings, pfase_payment WHERE payment_id = $q";
  7. $result = mysql_query($sql) or die(mysql_error());
  8. $row = mysql_fetch_assoc($result);
  9.  
  10. echo "Cena za SMS: <span>".$row['payment_price']."zł</span> z VAT";


  1. <select onchange="showPrice(this.value)">
  2. <option value=""></option>
  3. {foreach from=$payment item=row}<option value="{$row.payment_id}">{$row.payment_time}</option>{/foreach}


W <div id=#txtHint> wyświetla mi się cena, która jest zależna od wyboru w select. Moim celem jest wyświetlenie ponowne ceny, oraz numeru z bazy (id select = id ceny i numeru) tylko w innej postaci, tzn. nie "Cena za SMS: <span>".$row['payment_price']."zł</span> z VAT".
Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Arcioch
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


Kolego to jest tylko przykład (IMG:style_emoticons/default/wink.gif) bez problemu można go zastosować ze smartami (IMG:style_emoticons/default/wink.gif)
Robisz selecta jak w Twoim kodzie w value wpisując id i ślesz id postem (IMG:style_emoticons/default/wink.gif) Ja akurat wysyłałem klucze tablicy bo mi tak było szybciej (IMG:style_emoticons/default/wink.gif) Kodu jQuery nie musisz zmieniać chyba ze nazwę wysyłanej postem zmiennej i id selecta z którego ma łapać (IMG:style_emoticons/default/wink.gif) Czyli robisz tak (IMG:style_emoticons/default/wink.gif) W pliku z templatem gdzie masz załączane arkusz stylów itp w znaczniku head doklejasz (IMG:style_emoticons/default/wink.gif)

  1. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  2.  
  3. $(function(){
  4. $('#produkty').change(function() {
  5.  
  6. var produkt = $('select#produkty option:selected').val();
  7.  
  8. if(produkt != ''){
  9. $.ajax({
  10. type: "POST",
  11. url: "post.php",
  12. data: "produkt=" + produkt ,
  13. cache: false,
  14. dataType: "json",
  15. success: function(data){
  16. $('div.desc').html(data);
  17. }
  18. });
  19. }else{
  20. $('div.desc').html('');
  21. }
  22.  
  23. });
  24.  
  25. });
  26.  


Twój select w smartach wygląda tak (IMG:style_emoticons/default/wink.gif) Dodatkowo potrzeby jest jakiś pusty div w którym będziemy wrzucać ten tekst (w tym przypadku div.desc)(IMG:style_emoticons/default/wink.gif)

  1. <select id="produkty" name="produkty">
  2. <option value=""></option>
  3. {foreach from=$payment item=row}<option value="{$row.payment_id}">{$row.payment_time}</option>{/foreach}
  4. <div class="desc"></div>


Plik post.php w Twoim przypadku będzie wyglądał tak (IMG:style_emoticons/default/wink.gif)

  1. <?
  2. if(isset($_POST['produkt'])){
  3.  
  4. $q=$_POST['produkt'];
  5.  
  6. $dbConnect = mysql_connect ($dbHost, $dbUser, $dbPass) or die ('MySQL connect failed. ' . mysql_error());
  7. mysql_select_db($dbName) or die('Cannot select database. ' . mysql_error());
  8.  
  9. $sql = "SELECT * FROM pfase_server, pfase_settings, pfase_payment WHERE payment_id = $q";
  10. $result = mysql_query($sql) or die(mysql_error());
  11. $row = mysql_fetch_assoc($result);
  12. $komunikat = "Cena za SMS: <span>".$row['payment_price']."zł</span> z VAT";
  13. echo json_encode($komunikat);
  14. }
  15. ?>


Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 09:41