-
php potrzebuję pomocy
Chcę zrobić rozwijane menu, tak aby potem sciagalo numer wybranej opcji w postaci $numersms i na koncu numer wybranej opcji.
czyli jesli mamy 2 opcje do wyboru jedna ma value=1 druga 2
i wybieramy opcje 2 to wczytuje $a2 $b2 $c2 itd
jesli sie wybierze opcje 1 to wczytuje $a1 $b1 $c1 itd
mam nadzieje ze jakos w miare po ludzku wytlumaczylem o co mi chodzi...
moj index.php
Kod:
<html>
<?
include("config.php");
?>
<form method="post">
<select name="Usluga">
<option value="0"></option>
<option value="1">Konto VIP</option>
<option value="2">Konto SuperVIP</option>
</select>
<input type="submit" name="wyslij">
</form>
<?
if (isset($_POST['wyslij']))
{
$jakausluga = $_POST['Usluga']
$numersms = $numer_uslugi'.$jakausluga.';
$kosztsms = $koszt_sms'.$jakausluga.';
$kupowananazwa = $nazwa_uslugi'.$jakausluga.';
if ($_POST['Usluga'] == "0") {
die("Nie wybrałeś usługi!")
}
else
{
echo "Aby zakupić '.$kupowananazwa.' wyślij sms
<br>o treści KDW.HC na numer '.$numersms.'.
<br>Koszt sms to '.$kosztsms.'.
Płatności obsługuje ProfitSms"
}}
?>
</html>
oraz config.php
Kod:
<?
$numer_uslugi1 = '7136';
$koszt_sms1 = '1,23';
$nazwa_uslugi1 = 'Ranga VIP na okres 3 Dni.';
$numer_uslugi2 = '7255';
$koszt_sms2 = '2,46';
$nazwa_uslugi2 = 'Ranga SuperVIP na okres 3 Dni.';
?>
pomocy :)
Parse error : syntax error, unexpected
T_VARIABLE in /home/
public_html/test/a/index.php on line 18
-
Kod:
$jakausluga = $_POST['Usluga']
17 linijka
brakuje ;
-
Cytuj:
Waleczny napisał
Kod:
$jakausluga = $_POST['Usluga']
17 linijka
brakuje ;
faktycznie, lecz znowu cos nie pasuje..
aktualny index
Kod:
<html>
<?
include("config.php");
?>
<form method="post">
<select name="Usluga">
<option value="0"></option>
<option value="1">Konto VIP</option>
<option value="2">Konto SuperVIP</option>
</select>
<input type="submit" name="wyslij">
</form>
<?
if (isset($_POST['wyslij']))
{
$jakausluga = $_POST['Usluga'];
$numersms = ($numer_uslugi'.$jakausluga.');
$kosztsms = $koszt_sms'.$jakausluga.';
$kupowananazwa = $nazwa_uslugi'.$jakausluga.';
if ($_POST['Usluga'] == "0") {
die("Nie wybrałeś usługi!")
}
else
{
echo "Aby zakupić '.$kupowananazwa.' wyślij sms
<br>o treści KDW.HC na numer .$numersms..
<br>Koszt sms to .$kosztsms.
Płatności obsługuje ProfitSms"
}}
//else if ($_POST['Usluga'] == "2") {
//echo "Wybrałeś SuperVipa";
//}
//else
//echo "Nie wybrałeś usługi!";
//}
?>
</html>
Parse error : syntax error, unexpected
T_CONSTANT_ENCAPSED_STRING in /home/public_html/test/a/index.php on
line 18
-
Używaj notatnika z podświetlaniem składni ( Np Notepad ++ )
Kod:
$numersms = ($numer_uslugi'.$jakausluga.');
$kosztsms = $koszt_sms'.$jakausluga.';
$kupowananazwa = $nazwa_uslugi'.$jakausluga.';
na:
Kod:
$numersms = ($numer_uslugi.$jakausluga);
$kosztsms = $koszt_sms.$jakausluga;
$kupowananazwa = $nazwa_uslugi.$jakausluga;
-
@up
dzieki :)
hmm nie bardzo to działa, zamiast podstawiać z configu, to daje samą liczbę z value... jakies pomysly?
index
Kod:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
</head>
<?
include("config.php");
?>
<form method="post">
<select name="Usluga">
<option value="0"></option>
<option value="1">Konto VIP</option>
<option value="2">Konto SuperVIP</option>
</select>
<input type="submit" name="wyslij">
</form>
<?
if (isset($_POST['wyslij'])){
if ($_POST['Usluga'] == "0") {
echo "Nie wybrałeś usługi!";
}else{
include("config.php");
$jakausluga = $_POST['Usluga'];
$numersms = $numer_uslugi.$jakausluga;
$kosztsms = $koszt_sms.$jakausluga;
$kupowananazwa = $nazwa_uslugi.$jakausluga;
include("config.php");
echo 'Aby zakupić '.$kupowananazwa.' wyślij sms
<br>o treści KDW.HC na numer '.$numersms.'.
<br>Koszt sms to '.$kosztsms.'. Płatności obsługuje ProfitSms';
}}
?>
</html>
config jak w pierwszym poscie
mozecie zerknac na http://test.howcraft.pl/a/
Jakies pomysly?
-
Nie wiem czy tak na pewno sie to robi w php, ale potrzebna ci konwersja z int na string.
Sprobuj zrobic $zmienna = ''.$tutajInt;
Wazne wlasnie te dwa pojedyncze apostrofy zeby zaznaczyc ze to jest string, i do niego doklejasz wartosc.
@edit
Aha dobra a ty w ogole to chcesz zrobic rzecz ktora jest niemozliwa do zrobienia xd
Nie mozesz sie odwolac do zmiennej $zmienna2 poprzez zrobienie $zmienna.'2'.
Takie cos da ci w efekcie: wartosc zmiennej, i doklejony do tego tekst, w tym wypadku 2.
Czyli jesli zmienna $numer_uslugi ma wartosc zalozmy: "6234", a zmienna $jaka_usluga ma wartosc "5",
To po zrobieniu $zmienna = $numer_uslugi.$jaka_usluga;
$zmienna ma w tym momencie wartosc "62345"
Nie jestem pewny tego co pisze, ale tak mi sie wydaje. Ale na pewno twoje proby w ten sposob nigdy nie zadzialaja :)
Aby zrobic to co ty chcesz, potrzebujesz tablice, a najlepiej strukture (bo w jednej zmiennej chcesz trzymac 3 wartosci). i chcesz miec kilka zmiennych trzymajacych kilka wartosci.
Nie wiem czy w php jest pojecie struktury, czy po prostu tablica i tyle. (tablica a struktura to co innego).
Wiecej w necie :)
Kod:
$jakausluga = $_POST['Usluga'];
$numersms = $numer_uslugi.$jakausluga;
$kosztsms = $koszt_sms.$jakausluga;
$kupowananazwa = $nazwa_uslugi.$jakausluga;
zamien na:
Kod:
$jakausluga = $_POST['Usluga'];
if ($jakausluga === 1)
{
$numersms = $numer_uslugi1;
$kosztsms = $koszt_sms1;
$kupowananazwa = $nazwa_uslugi1;
}
else if ($jakausluga === 2 )
{
$numersms = $numer_uslugi2;
$kosztsms = $koszt_sms2;
$kupowananazwa = $nazwa_uslugi2;
}
else { // zabezpieczenie jakby ktos zrobil wartosc selecta na 10. Da sie :) mimo ze nie masz takiej opcji, to w stanie takim jakim jest to teraz, moge przeslac na serwer zlosliwy kod php, ktory np usunie ci wszystkie pliki, albo baze danych jesli takowa masz :)
$numersms = 0;
$kosztsms = 0;
$kupowananazwa = 0;
}
Tablica sie przyda jakbys chcial dodac nowa usluge. Wtedy tylko w config.php doklejasz swoje nowe wartosci, do selecta dodajesz nowa wartosc. I przy dobrze napisanym kodzie nie musisz robic nowych ifów itp.
Wtedy sie to robi tak:
Kod:
$wybrana_usluga = $_POST['usluga'];
if ( isset($tablica_numerow[$wybrana_usluga]) ) // sprawdzenie czy jest zdefiniowana taka usluga o ktora zapytano
{
$numer = $tablica_numerow[$wybrana_usluga]; // jak jest to pobieramy wartosci z naszych tablic, dla elementu tego ktoremu odpowiada nasz wybrany z listy select element :)
$koszt = $tablica_kosztow[$wybrana_usluga];
$nazwa = $tablica_nazw[$wybrana_usluga];
}
else
{
echo 'nie oszukuj!';
}
Mozna to zrobic jeszcze lepiej, zeby nie bylo trzech roznych tablic, tylko wszystkie wartosci $numer, $koszt, i $nazwa moglbys pobrac z $tablica_elementow[$wybrana_usluga]['koszt'];
Wtedy masz wszystko cycuś glancuś, i latwe do dodawania nowych elementow, bez meczenia sie pozniej ze 100 ifami, jesli bys mial 100 mozliwych uslug :) Bo ten kod by starczyl i dla 10 elementow i dla 1000 :)
-
up dzięki zrobiłem
w ten sposob jak pisales
if ($jakausluga == "1")
{
$numersms = $numer_uslugi1;
$kosztsms = $koszt_sms1;
$kupowananazwa = $nazwa_uslugi1;
}
i dziala. nie bede sie bawil z tymi tablicami, to bedzie tylko dla 10 rekordow to wiesz... a potem najwyzej mozna dopisac :D
Dzięki wszystkim za pomoc
-
Na przyszłość - nie działało bo mylisz kontekst, próbowałeś utworzyć nazwę zmiennej i dopiero z tego wartość, tam potrzebny był "podwójny dolar" :D
Ale skoro już ktos Ci walnal rozwiązanie działające to chyba można zamknąć;]