Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
mam problem wziałem sie za zabawe w php, chciałem do tego dołożyć html i css ale błędzi mi nie miłosiernie i nie mam już pomysłu jak skleic te dwa pliki w jeden, dlatego proszę o pomoc bo sam sobie raczej nie dam rady :(
Plik1:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<title>Formularz - PHP_SELF</title>
</head>
<body>
<?php
$link = mysql_connect("127.0.0.1", "root", "root" ) or die("Could not connect");
mysql_select_db("moja") or die("Could not select database");
$query = mysql_query('select id, nazwa_pole, typ FROM `szablony`') or die('Błąd zapytania');
$i=0;
$arr = array();
while($res = mysql_fetch_array($query))
{
$arr[$i++]=$res;
}
// print_r($arr);
//echo $arr[0][0];
$ilosc=count($arr);
// echo $ilosc;
for ($i=0;$i<$ilosc;$i++)
{
echo "<br>".$arr[$i][1];
if ($arr[$i][2]=="S")
{
echo "<input type=\"text\" />";
}
else if ($arr[$i][2]=="M")
{
echo "<select name='wybor' >;
<option value=\"1\">tak</option>;
<option value=\"2\">nie </option>;
</select>";
}
else
{
echo "<select name='wybor' >;
<option value=\"1\">wartosc a</option>;
<option value=\"2\">wartosc b</option>;
</select>";
}
}
?>
</body>
</html>
Plik 2:
<html>
<head>
<title>Formularz</title>
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.11.0/build/cssbase/cssbase-min.css">
<body>
</body>
</html>
3 - Odnosnik do strony z css`em
http://purecss.io/forms/
oraz kod w który ma zostac wpiety php
<form class="pure-form pure-form-aligned">
<fieldset>
<div class="pure-control-group">
<label for="name">Username</label>
<input id="name" type="text" placeholder="Username">
</div>
<div class="pure-control-group">
<label for="password">Password</label>
<input id="password" type="password" placeholder="Password">
</div>
<div class="pure-control-group">
<label for="email">Email Address</label>
<input id="email" type="email" placeholder="Email Address">
</div>
<div class="pure-control-group">
<label for="foo">Supercalifragilistic Label</label>
<input id="foo" type="text" placeholder="Enter something here...">
</div>
<div class="pure-controls">
<label for="cb" class="pure-checkbox">
<input id="cb" type="checkbox"> I've read the terms and conditions
</label>
<button type="submit" class="pure-button pure-button-primary">Submit</button>
</div>
</fieldset>
</form>
Z góry dzięki za pomoc i wyrozumiałość męcze sie z tym od 18 i jedyne co płodzę to obelżywe słowa.
Pozdrawiam
Offline
O co pytasz? Co rozumiesz skleić dwa pliki w jeden? Polecenie cat skleja pliki. Czytałeś cokolwiek o obsłudze formularzy przez PHP? Poczytaj, wiele się wyjaśni. Np. http://pl.wikibooks.org/wiki/PHP/Formularze .
Offline
Chodzi o to ze gubie sie zagniezdzeniu php w html `u , nie mam juz sily czytalem o skladni jednak ciezko jest ten kod podzielic w ten sposob aby pasowal do ram cssa.
PS
Przetwarzanie danych z formularza na razie sobie daruje co by do konca sie nie zgubic.:)
Ostatnio edytowany przez Kamil2685 (2013-07-26 00:32:34)
Offline
Formularz jest banalny, przy czym przyciskiem Submit wyzwalasz skrypt php, który odbiera dane z tablicy GET lub POST, w zależności, jak ustaliłeś metodę.
Normalnie odbywa się to poprzez przeładowanie strony, chyba, ze pobawisz się javascriptem lub ajaxem, które potrafią sprawę załatwić bez odświeżania strony, ale to już wyższa szkoła jazdy.
Offline
Problem w tym ze nie umiem zrobic formularza.
Czysty kod php owszem, samo html tez ale nie rozumiem zasady funkcjonowania tych jezykow razem, siedze przegladam strony i jeden wielki meski czlonek :/ (i pomyslec ze malpy w kosmos lataja)
Podpiecie skryptu pod guzik juz nie bd problemem.
Moze nakresle co chce zrobic:
Stworzyc skrypt ktory polaczy sie z baza danych zczyta wartosci pol (id,cos,typcos) do tablicy w php -to zostalo wykonane petla $arr = array();
*while($res = mysql_fetch_array($query))
*{
*$arr[$i++]=$res;
*...
nastepnie rowniez w petli zczytuje nazwe pola na formularz i w zaleznosci od wartosci pola typ stosuje odpowiedniego inputa -tez dziala. Problem w tym aby to ubrac ladnie w cssa.
Ostatnio edytowany przez Kamil2685 (2013-07-26 02:35:50)
Offline
Nie przeglądaj stron, weź jedną i przeczytaj od początku do końca. W tym co wkleiłem masz wszystko wyjaśnione.
Formularz umiesz zrobić bo sam go wkleiłeś, dodajesz go na swojej stronie między <body> . Element <form> ma metodę wysyłania danych z formularza, GET lub POST. Dane są przesyłane do skryptu zdefiniowanego w atrybucie action formularza. Skrypt potem je wybiera z mapy $_GET lub $_POST zależnie od metody. Nazwy kluczy to wartości atrybutów name elementów formularza, do których wprowadzasz dane. Wysłanie danych może się odbyć przez klik w <input> o typie submit znajdujący się w formularzu. Nie trzeba żadnego skrypt pod guzik. Poza PHP trzeba znać też HTML-a. To chyba cała filozofia. Jak dalej nie rozumiesz weź jakiś prosty przykład jakich masę w sieci i uruchom.
Offline
masz dwie możliwości, albo bawisz się ze śmietnikiem, albo w szybki i przyjemny sposób robisz takie rzeczy. Przy okazji nauczysz się OOP :)
Same korzyści.
Na początek poczytaj o PDO i OOP. Następnie zrób sobie model ze strukturą w php np.
Opisujesz strukture tabeli:
class Model_Struct_UserStruct { public $id; public $username; public $email; public $created_date; }
Następnie "obsługa zdarzeń"
class Model_Users extends Database{ //klasa 'Database' dziedziczy po PDO, należy tam ustawić połączenie z bazą oraz wywołać konstruktor PDO [parent::__construct($dsn, $dbuser, $dbpass)] public function getUsers(){ $sql = "SELECT * FROM users ORDER BY id"; $query = $this->prepare($sql); $query->execute(); return $query->fetchALL(PDO::FETCH_CLASS, "Model_Struct_UserStruct"); } }
Teraz robimy require lub include w pliku wykonawczym a nastepnie:
// plik index.php $mdlUsers = new Model_Users(); $users = $mdlUsers->getUsers();
W tym momencie mamy tablice obiektów którą możemy w fajny sposób wykorzystać.
Przechodzimy do szablonów. Ja aktualnie używam szablonów Twig które wg mnie są user friendly :)
Po ściągnięciu konfiguracja wygląda następująco:
// index.php cd. require_once 'Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('/sciezka/do/templates'); $config['cache'] = false; // wylaczamy cache $config['debug'] = true; $twig = new Twig_Enviroment($loader, $config); // dodajemy plugin Debugera $view->addExtension(new Twig_Extension_Debug());
Teraz Twoje nieszczęście, szablony :P
W naszym index.php dodajemy jeszcze wpis o renderowaniu szblonu:
// index.php cd. echo $twig->render('index.twig', array( 'zmienna' => $users ));
{# index.twig #} Lista użytkowników: <ol> {% for u in zmienna %} <li> ID# {{u.id }}, {{ u.email }} {% endfor %} </ol>
Po tych czynnosciach masz:
* przejrzysty szablon
* ład i porządek w kodzie
* łatwość w analizie gdzie wystąpił błąd
innymi słowy więcej korzyści, owszem większy nakład ale to na początku.
Reasumując, Twój szablon wyglądałby mniej więcej tak:
<html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> <title>Formularz</title> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.11.0/build/cssbase/cssbase-min.css"> </head> <body> <form class="pure-form pure-form-aligned"> <fieldset> <div class="pure-control-group"> <label for="name">Username</label> <input id="name" type="text" placeholder="Username"> </div> <div class="pure-control-group"> <label for="password">Password</label> <input id="password" type="password" placeholder="Password"> </div> <div class="pure-control-group"> <label for="email">Email Address</label> <input id="email" type="email" placeholder="Email Address"> </div> <div class="pure-control-group"> <label for="foo">Supercalifragilistic Label</label> <input id="foo" type="text" placeholder="Enter something here..."> </div> <div class="pure-control-group"> {% for item in options %} {% if options.nazwa_pole == "S" %} <input type="text" /> {% elseif options.nazwa_pole == "M" %} <select> <option>T</option> <option>N</option> </select> {% else %} Coś innego {% endif %} {% endfor %} </div> <div class="pure-controls"> <label for="cb" class="pure-checkbox"> <input id="cb" type="checkbox"> I've read the terms and conditions </label> <button type="submit" class="pure-button pure-button-primary">Submit</button> </div> </fieldset> </form> </body> </html>
A przekazanie tablicy szablonu pozostawiam Tobie jako zadanie domowe :-)
Więcej o Twig: http://twig.sensiolabs.org/doc/api.html
Zabawiłem się w górnika ładnie :P, mam nadzieję, że troszkę Ci namieszałem i wyjaśniłem :)
Offline