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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-07-25 22:37:17

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Integracja php w html`u.

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

 

#2  2013-07-26 00:13:54

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Integracja php w html`u.

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

 

#3  2013-07-26 00:31:12

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Re: Integracja php w html`u.

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

 

#4  2013-07-26 00:45:24

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Integracja php w html`u.

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.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2013-07-26 02:28:07

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Re: Integracja php w html`u.

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

 

#6  2013-07-26 08:30:20

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Integracja php w html`u.

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

 

#7  2013-08-01 09:00:03

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Integracja php w html`u.

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:

Kod:

class Model_Struct_UserStruct {
public $id;
public $username;
public $email;
public $created_date;
}

Następnie "obsługa zdarzeń"

Kod:

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:

Kod:

// 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:

Kod:

// 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:

Kod:

// index.php cd.
echo $twig->render('index.twig', array( 'zmienna' => $users ));

Kod:

{# 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:

Kod:

<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 :)


LRU #480459

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)