Jump to content
Sign in to follow this  
Sobieski1

Dynamiczne wyświetlenie wybranej wartości PHP

Recommended Posts

Witam,

Mam pewien problem, mam taki kod mniej więcej:

<?php
$ilosc = $_POST['select'];
if($ilosc == 1){
  $ustaw = 1;
}
if($ilosc == 2){
  $ustaw == 2;
}
?>

<select name="select">
  <option value="1">wartosc1</option>
  <option value="2">wartosc2</option>
</select>
Wybrałeś <?php echo $ustaw;?>

Problemem jest dynamiczna zmiana zawartości wypisywanej przez <?php echo $ustaw;?>, jak zrobić aby każdy wybór "odświeżał" tą zmienną? Aktualnie jeden wybór ustawia zmienną na x i po zmianie wartości select nie podmienia tekstu. Nie chcę tego robić w stylu onchange dla pola select w javascript ponieważ to ma być więcej wartości niż tylko 2 i muszą być tak jakby pobrane na nowo z $ustaw. Może ktoś ma pomysł jak to rozwiązać?

Share this post


Link to post

Skoro masz atrybut value, to dlaczego go od razu nie wyświetlisz po odebraniu danych?

<?php
$ustaw = $_POST['select'];
?>

<select name="select">
  <option value="1">wartosc1</option>
  <option value="2">wartosc2</option>
</select>
Wybrałeś <?php echo $ustaw ?>

Jeżeli chcesz to zrobić dynamicznie po stronie klienta, to musisz wykorzystać AJAX (jQ + PHP) albo samo JS / jQ z odpowiednim zdarzeniem.

 

PS. Żeby mój kod i Twój zadziałał po stronie PHP, to musisz <select> zamknąć w <form>.

  • Like 1

Share this post


Link to post

Nie mogę tak zrobić ponieważ zmienna $ustaw przekazywana jest dalej do skryptu (sprawdzam czy nie jest wyzsza niz 2 i potem wykonuje nast kod). Czyli chcę osiągnąć coś w stylu " wybieram wartosc 2 ale sie pomylilem i chce wrocic na wartosc 1 i chce aby tekst zamiast pokazać się 2 był 1 i do skryptu przekazała się wartość $ustaw z if($ilosc == 1)"  

 

Czyli w skrócie, po wybraniu odpowiedniej wartości (za każdym razem) potrzebuję pobrać na nowo wartość z $ustaw i ją wyświetlić oraz przekazać dalej do skryptu)

Share this post


Link to post

Chcesz osiągnąć takie coś mniej więcej (tylko, że przy użyciu selecta)?

I skoro to co wybierze user trafia dalej do skryptu, to musisz się zainteresować AJAXem, innej rady nie ma.

  • Like 1

Share this post


Link to post

Coś w tym stylu tylko zamiast 

"<div class="sms sms-1">qwerty</div>
<div class="sms sms-2">asdzxc</div>"

Wypisanego na sztywno mają być wypisane dane z odświeżonej zmiennej.

U mnie to wygląda m.in tak: 

if($ilosc == 1){
$ustaw = array(
        'mh' => '1',
        'th' => '1');
}
if($ilosc == 2){
$ustaw = array(
        'mh' => 'innedane',
        'th' => 'innedane');
}

I chcę aby za każdym razem przy wyborze z selecta dla różnych wartości wyświetlało się dobre <?php echo $ustaw['mh'];?> i pozostałe przypisane do tego dane.

Share this post


Link to post

MVC raczej przy takim prostym skrypcie który stworzony jest tylko pod 1 działanie chyba jest bez sensu  

No cóż pomęczę się z ajaxem

Share this post


Link to post

Nie wiem czy jest bez sensu. Sporo ułatwia przy późniejszym utrzymaniu, poprawkach i zabezpieczeniu kodu.

Share this post


Link to post

Gdyby taki skrypt był przekazywany do większej grupy ludzi i uznawany jako "produkcyjny" to masz racje, ale będzie on służył wąskiemu gronu i ma wykonywać tylko 1 określoną funkcję  Potrzebuję to jak najprostszym sposobem rozwiązać.

Share this post


Link to post

Zrobiłem coś takiego 

		<script>
$(document).ready(function(){
   $("select").change(function(){
	   $("#refresh").html("<?php echo $ustaw['th'];?>");
   });
});
</script>

 

aby spróbować lecz mam następny problem, co do tego:

if($ilosc == 1){
$ustaw = array(
        'mh' => '1',
        'th' => '1');
}
if($ilosc == 2){
$ustaw = array(
        'mh' => 'innedane',
        'th' => 'innedane');
}

Za każdym razem nie ważne czy klikne w selecta o wartości 2,3,4,5,itd... pobierane są dane z ilość == 1 czyli tak jakby te ify nie działały. To jest błąd w tym jquery czy w przypisywaniu wartości do zmiennej?

Share this post


Link to post

Nie sprawdzasz nawet co pobrałeś z selecta, to jak to ma działać prawidłowo?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Create a New Account. It’s free and easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×
×
  • Create New...