[ Googladzija @ 17.01.2017. 15:11 ] @

zanima me da li postoji neko posebno ogranicenje za koristenje JS-ovog alert message u PHP-u?

Code:
echo "<script type='text/javascript'>alert('Error deleting record!')</script>";


na jednom mjestu radi, a na drugom ne. oba puta unutar PHP.
[ VladaSu @ 17.01.2017. 15:44 ] @
Nema. PHP ne zna sta si ti pisao za HTML. Problem ti je ko zna gde. Treba da naucis da debug-ujes.
[ Googladzija @ 18.01.2017. 00:22 ] @
da, radim neku glupost ocito. a sve je funkcionisalo dok nisam poceo da popravljam nepokvareno... :)

evo da pokusam objasniti sa malo vise koda, nadam se da ne gnjavim. rjesenje je sigurno jednostavno samo ga ja ne vidim.

u dbWriteView.php ukljucujem

include ('dbNav2.inc');
include ('dbNav3write.inc');

dbNav2.inc predstavlja samo navigaciju (zadnji dio) i izgleda ovako:
Code:

         <a href="neka_adresa" class="btn btn-default navbar-btn">NAZAD</a>
      </div>
    </nav>
  </div>
 ?>


dbNav3write.inc sadrzi formu preko koje unosim podatke:
Code:
<form action="dbWrite.php" method="post">
      <div class="row">
        <div class="col-md-2">
          <div class="form_div">
            <h3>Raspored</h3>
            <label>id:</label>
            <input class="input" name="id" type="text" value="">
            <label>širina:</label>
            <input class="input" name="sirina" type="number" value="">
            <label>visina:</label>
            <input class="input" name="visina" type="number" value="">
            <label>prvi i zadnji u prvoj koloni:</label>
            <input class="input" name="parFormatA" type="text" value="">
            <label>red (prvi) sa opisima usp.:</label>
            <input class="input" name="redFormatB" type="text" value="">
            <label>prvi i zadnji u zadnjoj koloni:</label>
            <input class="input" name="parFormatC" type="text" value="">
            <label>zadnja kolona:</label>
            <input class="input" name="kolonaFormatD" type="text" value="">
          </div>
        </div>

      <div class="col-md-2 col-md-offset-1">
           <div class="form_div">
          <h3>Fiksni znakovi</h3>
          <label>unesi fiksne znakove (npr. B6,X14,I23,C25):</label>
          <input class="input" name="znakovi" type="text" value="">
          <input class="submit" name="submit" type="submit" value="Upiši!">
        </div>
      </div>
    </div>
   </form>
</body>
</html>


podatke iz forme obradjuje dbWrite.php (nije citav kod):

Code:
<?php
  include ('dbConnect.inc');
  
  // upis u bazu

  if (isset($_POST['submit'])) {
    $id = $_POST['id'];
    $sirina = $_POST['sirina'];
    $visina = $_POST['visina'];
    $parFormatA = $_POST['parFormatA'];
    $redFormatB = $_POST['redFormatB'];
    $parFormatC = $_POST['parFormatC'];
    $kolonaFormatD = $_POST['kolonaFormatD'];


ono sto je meni nejasno:
zasto kada na pocetku ovog zadnjeg koda (dbWrite.php) stavim alert ili echo, ne dobijem nista?
[ Zlatni_bg @ 18.01.2017. 02:41 ] @
Pun kod potreban da bi ti pomogli, a ukljuci u PHPu error reporting
[ gost12 @ 18.01.2017. 09:52 ] @
PHP nema nikakve veze s javascriptom. PHP se izvršava na serveru i vraća resultat, većinom text(html) u ovom tvojem slučaju i js
Code:
echo "<script type='text/javascript'>alert('Error deleting record!')</script>";

Za browser je svejedno jer on to vidi kao
Code:
<script type='text/javascript'>alert('Error deleting record!')</script>
. JS se izvršava na klijentskoj strani u browseru klijenta.

Još samo da se nadovežem i kažem da je ovo užasno loša praksa
Code:
echo "<script type='text/javascript'>alert('Error deleting record!')</script>";
i ne bi se trebala nikad koristiti.
UI treba odvojiti od logike.
[ Googladzija @ 18.01.2017. 18:18 ] @
hvala vam. pomogli su savjeti za ukljucivanje error reportinga i malo vise truda oko debug-ovanja. na jednom mjestu, kod citanja podatka za bazu, nisu bili zatvoreni polunavodnici.
samo, nije mi jasno zasto tu gresku nije zabiljezio error_log na serveru? oslanjao sam se na njega jer je u ranijim slucajevima pomogao...

Citat:
gost12
Još samo da se nadovežem i kažem da je ovo užasno loša praksa
Code:
echo "<script type='text/javascript'>alert('Error deleting record!')</script>";
i ne bi se trebala nikad koristiti.
UI treba odvojiti od logike.

kako mislis da bi bilo bolje ovo uraditi?

[ plus_minus @ 18.01.2017. 18:41 ] @
Umesto alert pop-up prozora, kreiraj neki p element u letu ili u već postojeći `p` u sklopu html-a ispiši poruku...

Code (javascript):

myTargetParagraph.innerHTML = 'Error deleting record!';
 


[ Googladzija @ 18.01.2017. 19:35 ] @
a na to je mislio...
ok, hvala.
[ gost12 @ 19.01.2017. 08:09 ] @
Nisam na to mislio, već na pisanje html-a unutar php echo taga.
Za takve stvari se koristi ili template engine, ili se sam php koristi kao template engine.
Vidi malo oko MVC frameworka, ovaj citiran kod nikako ne bi trebao biti ispisan echo naredbom...
[ Googladzija @ 19.01.2017. 21:53 ] @
a sta da radim ako ne koristim MVC framework?
[ gost12 @ 20.01.2017. 08:13 ] @
Počni ga koristit? :D
Nema smisla ne koristiti neki framework u današnje vrijeme.
u najgorem slučaju možeš ovako odvojiti, ali to je još miljama do dobrog koda. Čisto da ti ideju dam.

file.php
Code:

<?php
$title= 'page title';
include 'view.php';


view.php
Code:

<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
...
</body>
</html>


Pogledaj malo neke popularne frameworke, možda da probaš sa jednostavnijima, ima ih milijun...
[ Googladzija @ 24.01.2017. 17:02 ] @
razumijem da framework dosta olaksava kodiranje, ali smatram se jos poprilicno pocetnikom pa ce mi trebati jos vremena i iskustva da dodjem do tog nivoa...

u svakom slucaju hvala ti za prijedloge.
[ Nemanja Avramović @ 12.02.2017. 19:18 ] @
Dok učiš ne moraš da koristiš framework, ali barem počni da koristiš neki template engine:

1) http://www.smarty.net/ - Smarty je mator kao biblija ali i dalje živ, to je valjda znak da valja :) nisam ga koristio jako dugo a i kad sam ga koristio koristio sam ga kratak period tako da ne mogu mnogo da kažem o njemu.
2) http://twig.sensiolabs.org/ - Twig je podrazumevani template engine Symfony frameworka, ali radi i kao nezavisna komponenta tako da ga svako može koristiti u svom php projektu. Takođe sam ga koristio jedno kratko vreme i pokazao se kao odličan.
3) https://github.com/PhiloNL/Laravel-Blade - Blade je podrazumevani template engine Laravel frameworka, koji zvančno ne radi kao nezavisna komponenta ali ga je ovaj lik napravio tako da radi i kao nezavisna komponenta. Probao sam ovaj paket i radi, a Blade koristim u Laravelu svakodnevno i odličan je.
[ svepomalo @ 12.02.2017. 19:42 ] @
U cemu je prednost template engine-a osim da ti uspori aplikaciju? A da izgleda cool.
[ Nemanja Avramović @ 15.02.2017. 01:29 ] @
Ni jedan od navedenih ne usporava aplikaciju (primetno) jer svi kompajliraju templejte u native PHP kod, tako da do sledeće izmene templejta aplikacija koristi kompajlirani templejt. Pored bolje čitljivosti koda i jasnog razdvajanja business logike od prezentacionog dela aplikacije, jedino što mi pada na pamet je mogućnost nasleđivanja templejta (slično kao OOP nasleđivanje), bez koje ne mogu da zamislim održavanje kompleksnih aplikacija. Meni su ove tri navedene stvari sasvim dovoljan razlog za korišćenje template engine-a.