Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

[ROZWIĄZANE] Odświeżenie Informacji <select>

php

  • Zamknięty Temat jest zamknięty
10 odpowiedzi w tym temacie

#1 ELOS

    No i pozamiatane ;*

  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 02.07.2012 09:20

Mam zrobiony prosty formularz
<select name="test" onchange='document.form.submit.click();'>
<option>0</option>
<option>1</option>
<option>2</option>
</select>
ifa na ustalanie zmiennej

if($test == 1)
 {
 $kasa=0.80;
 }
 if($test == 2)
 {
 $kasa=0.90;
 }
oraz prosty scrypt na pokazywanie

if($test == 0 || empty($test))
 {
 echo "Aby Zobaczyć wybierz z listy";
 }
 else
 {
 echo "$kasa zl";
 }

 }
Do tego mam oczywiście zmienne o wartości zwracanej przez formularz.

Dla czego gdy zmienię wartość select nie działa funkcja
onchange='document.form.submit.click();'
Jak mogę zrobić to w inny sposób ?


Nie wiedziałem do jakiego działu się bardziej ten temat nadaje czy do pomocy czy do pytań więc przepraszam.
  • +
  • -
  • 0

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#2 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 02.07.2012 14:46

podać iD formularza ??
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 02.07.2012 16:01

może lepiej też użyj oninput zamiast onchange.

#4 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 02.07.2012 16:18

albo raczej
this.parrant.submit.click()

(02.07.2012 16:23):
parrant?
G[o]Q (02.07.2012 17:27):
literówka xD
(02.07.2012 18:01):
;)

  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#5 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 02.07.2012 16:25

nadaj formularzowi id i wykonaj na select
oninput="document.getElementById('idFormularza').submit()"
A najlepiej pokaż więcej kodu, bo trudno jest tak gdybać w ciemno.

edit. Przykład:

<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="test" method="post" id="a">
<select name="a">
<option disabled selected value="">Wybierz wartość</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<input oninput="document.getElementById('a').submit()" placeholder="Wpisz cokolwiek, aby kontynuować" size="30"></input>
</form>
<?
echo "<br>Wartość: ".$_POST[a];
?>
</body>
</html>


A tutaj ew. wersja z onchange:

<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="test" method="post" id="a">
<select onchange="document.getElementById('a').submit()" name="a">
<option disabled selected value="">Wybierz wartość</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
</form>
<?
echo "<br>Wartość: ".$_POST[a];
?>
</body>
</html>

Użytkownik benio101 edytował ten post 02.07.2012 16:54


#6 ELOS

    No i pozamiatane ;*

  • Autor tematu
  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 02.07.2012 19:34

Id mam nadane.

Żaden ze sposobów nie działa ponieważ przy zmianie wartości select ma odświeżyć informacje a nie wysyłać formularz.
Mój Kod.
<?php
ob_start();
session_start();
?><p style="padding-left:10px; padding-bottom:5px; padding-top:5px; margin-left:10px; margin-top:10px; margin-right:10px; margin-bottom:10px; background-color: #1b1b1b;border-top: 1px #363636 solid;border-right: 1px #363636 solid; border-left: 1px #363636 solid;border-bottom: 1px #363636 solid; ">
<?php
  include('db.php');
  if(isset($_SESSION['login']))
  {
  $login = $_SESSION['login'];
  $wynik = mysql_query("SELECT * FROM uzytkownik WHERE login='$login'")
	    or die("Błąd w zapytaniu!");
  $rek = mysql_fetch_array($wynik); 
   $pokemon = $_POST["pokemon"];
if($pokemon == Pikachu)
{
$kasa=0.80;
}
if($pokemon == Bulbasaur)
{
$kasa=0.90;
}
if ($_POST["wyslane"]) {
$nick = $_POST["nick"];
$name = $_SESSION['login'];
if($rek['money'] >= $kasa)
{
if($pokemon == "Wybierz Pokemona")
{
  echo "Musisz wybrać pokemona z listy";
}
else
if($nick)
{
include('funkcje.php');
include_once('include/socketclient.php');
include_once('include/hldsrcon.php');

zabierz_kase($name,$kasa);

$rcon_ip = "31.186.84.46";
$rcon_port = "27113";
$rcon_password = "mojehasloj";

$cmd = 'pm_givepoke "'.$nick.'" '.$pokemon.' 1';

$rcon = new HLDSRcon($rcon_ip, $rcon_port, $rcon_password);
$result = $rcon ->cmd($cmd);

add_log($name, "Zakupił pokemona o id $pokemon dla nicku $nick");
add_log_money($name,"-".$kasa,"Kupno Pokemona");
echo "Kupiles Pokemona, zostal dodany do twojego plecaka, jezeli plecak byl zapelniony sprawdz w EMP.<br><br>";
}
else
{
  echo "Musisz wypelnic pole NICK!";
}
}
else
{
echo "Musisz posiadać $kasa zł";
}
}
$nickk = $_SESSION['login'];
    echo <<< KONIEC

<table>
<form method="post" name="form" id="form" action="?strona=kup_poka">
    <input type="hidden" name="wyslane" value="TRUE" />
<br>Kup Pokemona zostanie ci on dostarczony w trybie natychmiastowym!.<br>
<b>Pamiętaj aby kupując pokemona być na serwerze oraz mieć wolne miejsce w plecaku lub EMP!</b><br><br>
<tr>
  <td>Użytkownik:</td>
  <td><input type="text" name="name" value="$nickk" disabled="disabled"/></td>
</tr>
<tr>
  <td>Nick:</td>
  <td><input type="text" name="nick" /></td>
</tr>
<tr>
  <td>Pokemon:</td>
  <td>
  <select onchange="document.getElementById('form').submit()" name="pokemon">
  <option disabled selected value="">Wybierz Pokemona</option>
  <option>Bulbasaur</option>
  <option>Pikachu</option>
</select></td>
</tr><tr>
  <td>&nbsp;</td>
  <td><input type="submit" value="Wyślij formularz" /></td>
  </tr></form>
</table>
<br>
KONIEC;
if($pokemon == "Wybierz Pokemona" || empty($pokemon))
{
echo "Aby Zobaczyć koszt pokemona, wybierz go z listy";
}
else
{
echo "Koszt $kasa zł";
}
}
else
{
include('dostep.php');
}
?>

  • +
  • -
  • 0

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#7 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 02.07.2012 20:53

Nie możesz w ten sposób tego zrobić.

Zamiast PHP, użyj do generowania JavaScriptu.
Kod PHP wykonywany jest po stronie serwera przed wysłaniem do użytkownika / odwiedzającego stronę.
JS z kolei wykonywany jest po stronie użytkownika i będzie w tym wypadku najlepszą metodą dynamicznego generowania kosztu.

Zamień Twój kod ostatniej tabeli na
<script>
function zmienKoszt(Pokemon){
var koszt="&nbsp;";
switch(Pokemon){
case 'Pikachu': koszt="Koszt: 0.90 zł";
case 'Bulbasaur': koszt="Koszt: 0.80 zł";
}
document.getElementById('koszt').innerHTML=koszt;
}
</script>

<table>
<form method="post" name="form" id="form" action="?strona=kup_poka">
<input type="hidden" name="wyslane" value="TRUE" />
<br>Kup Pokemona zostanie ci on dostarczony w trybie natychmiastowym!.<br>
<b>Pamiętaj aby kupując pokemona być na serwerze oraz mieć wolne miejsce w plecaku lub EMP!</b><br><br>
<tr>
<td>Użytkownik:</td>
<td><input type="text" name="name" value="$nickk" disabled="disabled"/></td>
</tr>
<tr>
<td>Nick:</td>
<td><input type="text" name="nick" /></td>
</tr>
<tr>
<td>Pokemon:</td>
<td>
<select onchange="zmienKoszt(this.value)" name="pokemon">
<option disabled selected value="">Wybierz Pokemona</option>
<option value="Bulbasaur">Bulbasaur</option>
<option value="Pikachu">Pikachu</option>
</select></td>
</tr><tr>
<td id="koszt">&nbsp;</td>
<td><input type="submit" value="Wyślij formularz" /></td>
</tr></form>
</table>
Ponadto, w Twoim kodzie wybranie jakiegokolwiek Pokemona, wysyłałoby natychmiast formularz bez możliwości zmiany decyzji czy nawet zapoznania się z ceną Pokemona.

#8 ELOS

    No i pozamiatane ;*

  • Autor tematu
  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 02.07.2012 23:55

+ dla ciebie ale czemu to działa tylko przy 1 wyborze ? jeżeli wybrałem już Bulbasaura i potem zmieniam na Pikachu to już nie zmienia ceny.
  • +
  • -
  • 0

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#9 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 03.07.2012 00:43

No tak, bo zapomniałem dodać break; po case.
<script>
function zmienKoszt(Pokemon){
var koszt="&nbsp;";
switch(Pokemon){
case 'Pikachu': koszt="Koszt: 0.80 zł"; break;
case 'Bulbasaur': koszt="Koszt: 0.90 zł"; break;
}
document.getElementById('koszt').innerHTML=koszt;
}
</script>

<table>
<form method="post" name="form" id="form" action="?strona=kup_poka">
<input type="hidden" name="wyslane" value="TRUE" />
<br>Kup Pokemona zostanie ci on dostarczony w trybie natychmiastowym!.<br>
<b>Pamiętaj aby kupując pokemona być na serwerze oraz mieć wolne miejsce w plecaku lub EMP!</b><br><br>
<tr>
<td>Użytkownik:</td>
<td><input type="text" name="name" value="$nickk" disabled="disabled"/></td>
</tr>
<tr>
<td>Nick:</td>
<td><input type="text" name="nick" /></td>
</tr>
<tr>
<td>Pokemon:</td>
<td>
<select onchange="zmienKoszt(this.value)" name="pokemon">
<option disabled selected value="">Wybierz Pokemona</option>
<option value="Bulbasaur">Bulbasaur</option>
<option value="Pikachu">Pikachu</option>
</select></td>
</tr><tr>
<td id="koszt">&nbsp;</td>
<td><input type="submit" value="Wyślij formularz" /></td>
</tr></form>
</table>


#10 ELOS

    No i pozamiatane ;*

  • Autor tematu
  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 03.07.2012 00:58

Dziękuje, do zamknięcia.
  • +
  • -
  • 0

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#11 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 03.07.2012 01:03

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych