| Autor | Zpráva | ||
|---|---|---|---|
| Forms Profil |
Dobrý den
Rád bych se optal či nevíte proč my nenačte script mám ho takto : <?php
function uprava_clienta() {
include_once "view/config/config.php";
if( isset($_GET['edit']) )
{
$id = $_GET['edit'];
$res= mysql_query("SELECT * FROM clients WHERE id='$id'");
$row= mysql_fetch_array($res);
}
if( isset($_POST['client_stat']) )
{
mysql_query("set names utf8");
$client_stat = $_POST['client_stat'];
$id = $_POST['id'];
$sql = "UPDATE clients SET client_stat='$client_stat' WHERE id='$id'";
$res = mysql_query($sql)
or die("Could not update".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=index.php?mode=status_clienta'>";
}
}
?>Volání scriptu na vypsání mám nad formulářem ale nic neudělá nevím ptoč <?php include_once "view/script/script.php"; uprava_clienta(); ?> tímto ho volám formulář mám takto <form action="" method="POST"> <table> <tr> <td><?php echo $row['id'];?></td> </tr> <tr> <td><input type="hidden" name="id" value="<?php echo $row[id]; ?>"></td> </tr> <tr> <td> <select name="client_stat"> <option value="schvaleno">Schvaleno<option> <option value="zamitnuto">Zamítnuto<option> </select> <input type="submit" value="Editovat"/> </td> </tr> <tr> <td> </td> </tr> </table> </form> |
||
| Taps Profil |
Forms:
Funkce by měla mít vystupu return...nebo alespon echo..ani jedno nevidim(prohlizim z mobilu) |
||
| Forms Profil |
#3 · Zasláno: 27. 12. 2014, 21:41:45
tedkon nechápu a kde by mělo byt to return ? to je jenom příkaz na update v mysql ale potřebuji aby to formulář zpracoval .... poslal by jsi ukázku prosím ?
|
||
| Joker Profil |
#4 · Zasláno: 27. 12. 2014, 21:47:33
Forms:
A co by to mělo udělat? Budu-li předpokládat, že v config.php není žádný výkonný kód, ta funkce: • Pokud není nastavené $_GET["edit"] ani $_POST["client_stat"] (v HTML žádná taková pole nevidím), neudělá nic. • Pokud z těch dvou je nastavené jen $_GET["edit"], v podstatě taky nic neudělá. Resp. pošle dotaz do databáze, ale s vrácenými daty nic neudělá a skončí. • Pokud je nastavené $_POST["client_stat"], vloží <meta> značku, což -pokud prohlížeč neudělá to přesměrování- nemusí taky být na první pohled viditelné. Hlavní příčinou potíží nejspíš je ignorování kontextů, respektive neznalost rozsahu platnosti proměnných. Vedle toho bych doporučil k přečtení i kapitolu o funkcích a jejich návrhu. |
||
| Forms Profil |
#5 · Zasláno: 27. 12. 2014, 22:02:42 · Upravil/a: Forms
Takto je to editace s tím že u daného kontaktu kliknu na editovat a veme to id a pokračuje dále na tento formulář a script a podle id pak edituje .
Problém je v tom že když to dám mezi ostatní scripty a pak ho volám function tak to neveme ale když ho mám přímo nad formulářem tak jde krasně jde my o to jak ho mám volat aby my fungoval ten script na tom formuláři |
||
| Joker Profil |
#6 · Zasláno: 27. 12. 2014, 22:17:30
Forms:
„když to dám mezi ostatní scripty a pak ho volám function tak to neveme ale když ho mám přímo nad formulářem tak jde krasně“ Ano, protože kontext. Viz můj předchozí příspěvek. |
||
| Forms Profil |
#7 · Zasláno: 27. 12. 2014, 22:56:55
jasny ale on dostal už věci $_GET z formuláře před tím a tedkon má formulář novy kterym to má zpracovat co vybere v tomto formuláři
jen potřebuji vědět jak volat script na formulář . Seznam s ID kliknu upravit > poté sem na formuláři uvedenem > spracuje script |
||
| Forms Profil |
Celkový kod
(1) <?
include_once "view/config/config.php";
$user_check = $_SESSION['username'];
$result = mysql_query($sql);
echo "<table cellpadding=\"2px\" cellspacing=\"0px\" border=\"1px\" id='stat_clients'";
$status =mysql_query("SELECT * From clients order by id desc LIMIT 50;");
while ($row=mysql_fetch_array($status))
echo "<tr><td>".$row['client_stat']."</td><td><a href=\"index.php?mode=uprava&edit=$row[id]\">upravit</a></td></tr>\n";
>?po kliknutí upravit : <form action="" method="POST"> <table> <tr> <td><?php echo $row['id'];?></td> </tr> <tr> <td><input type="hidden" name="id" value="<?php echo $row[id]; ?>"></td> </tr> <tr> <td> <select name="client_stat"> <option value="schvaleno">Schvaleno<option> <option value="zamitnuto">Zamítnuto<option> </select> <input type="submit" value="Editovat"/> </td> </tr> <tr> <td> </td> </tr> </table> </form> Script: < <?php
function uprava_clienta() {
include_once "view/config/config.php";
if( isset($_GET['edit']) )
{
$id = $_GET['edit'];
$res= mysql_query("SELECT * FROM clients WHERE id='$id'");
$row= mysql_fetch_array($res);
}
if( isset($_POST['client_stat']) )
{
mysql_query("set names utf8");
$client_stat = $_POST['client_stat'];
$id = $_POST['id'];
$sql = "UPDATE clients SET client_stat='$client_stat' WHERE id='$id'";
$res = mysql_query($sql)
or die("Could not update".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=index.php?mode=status_clienta'>";
}
}
?ktery volám <?php include_once "view/script/script.php"; uprava_clienta(); ?> Nevím proč my to nechce vzít a pracovat prosím poradte |
||
| Davex Profil |
#9 · Zasláno: 28. 12. 2014, 00:27:03
Bylo by dobré, kdybys to upřesnil. Nikdo nemůže vědět, co je v jakém souboru, zda voláš funkci
uprava_clienta() ve stejném skriptu jako je formulář a co znamená, že ti to nebere.
Mimochodem, proč jsi změnil přezdívku a nezůstal u Ameopro? |
||
| Forms Profil |
#10 · Zasláno: 28. 12. 2014, 00:34:34
index.php
<?
include_once "view/config/config.php";
$user_check = $_SESSION['username'];
$result = mysql_query($sql);
echo "<table cellpadding=\"2px\" cellspacing=\"0px\" border=\"1px\" id='stat_clients'";
$status =mysql_query("SELECT * From clients order by id desc LIMIT 50;");
while ($row=mysql_fetch_array($status))
echo "<tr><td>".$row['client_stat']."</td><td><a href=\"index.php?mode=uprava&edit=$row[id]\">upravit</a></td></tr>\n";
>?index.php?mode=uprava&edit=$row[id] < <?php include_once "view/script/script.php"; uprava_clienta(); ?> <form action="" method="POST"> <table> <tr> <td><?php echo $row['id'];?></td> </tr> <tr> <td><input type="hidden" name="id" value="<?php echo $row[id]; ?>"></td> </tr> <tr> <td> <select name="client_stat"> <option value="schvaleno">Schvaleno<option> <option value="zamitnuto">Zamítnuto<option> </select> <input type="submit" value="Editovat"/> </td> </tr> <tr> <td> </td> </tr> </table> </form view/script/script.php <?php
function uprava_clienta() {
include_once "view/config/config.php";
if( isset($_GET['edit']) )
{
$id = $_GET['edit'];
$res= mysql_query("SELECT * FROM clients WHERE id='$id'");
$row= mysql_fetch_array($res);
}
if( isset($_POST['client_stat']) )
{
mysql_query("set names utf8");
$client_stat = $_POST['client_stat'];
$id = $_POST['id'];
$sql = "UPDATE clients SET client_stat='$client_stat' WHERE id='$id'";
$res = mysql_query($sql)
or die("Could not update".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=index.php?mode=status_clienta'>";
}
}
?Oprava aby bylo vidět kde je co Jinak Ameopro je Bratr oba se učíme programovat akorád že ja jsem začal nedavno |
||
| Joker Profil |
#11 · Zasláno: 28. 12. 2014, 09:22:16
Forms:
„jen potřebuji vědět jak volat script na formulář .“ Skript se nejspíš zavolá (bez debuggeru se o tom dá snadno přesvědčit přidáním kontrolních výpisů na zajímavá místa v kódu), akorát nic neudělá. Davex: „Bylo by dobré, kdybys to upřesnil.“ Podstata je v tom, že se snaží používat lokální proměnné z funkce i mimo funkci. Až si přečte článek odkázaný v [#4], měl by pochopit, proč to nejde. Samozřejmě druhá věc je, že celý návrh té funkce je divný, proto jsem v [#4] odkázal i ten druhý článek. |
||
| Taps Profil |
Forms:
já bych tvůj skript upravil do dvou samostatných funkcí <?php
function uprava_clienta($id) {
include_once "view/config/config.php";
$res = mysql_query("SELECT * FROM clients WHERE id = ".intval($id));
$row = mysql_fetch_assoc($res);
return $row;
}
function stat_client($id, $client){
include_once "view/config/config.php";
mysql_query("set names utf8"); //dát do konfiguračního souboru
$client_stat = mysql_real_escape_string($client);
$id = intval($id);
$sql = "UPDATE clients SET client_stat = '$client_stat' WHERE id = ".$id;
$res = mysql_query($sql) or die ("Could not update".mysql_error());
if($res){
header('location:index.php?mode=status_clienta');
}
}
?><?php
include_once "view/script/script.php";
if(isset($_GET['edit'])){
$row = uprava_clienta($_GET['edit']);
}
?>Důležité je testovat existenci $_GET['edit']. Vzhledem k tomu, že jsi začátečník, tak se zatím vyhni používání vlastních funkcí. Důležité je pochopit základy programování v PHP, jeho principy a loginu. Teprve až poté je vhodné vytvářet vlastní funkce. |
||
| Forms Profil |
#13 · Zasláno: 28. 12. 2014, 10:34:50
Taps:
skoušel jsem tvůj script ale nefunguje nic nezpracuje . hodí hnet zase na stranku s formulářem na vyber select |
||
| Alphard Profil |
#14 · Zasláno: 28. 12. 2014, 10:35:27
|
||
| Joker Profil |
Taps:
Čistě po návrhové stránce to je sice lepší, ale tím víc snad z tohohle kódu: function uprava_clienta($id) {
include_once "view/config/config.php";
$res = mysql_query("SELECT * FROM clients WHERE id = ".intval($id));
$row = mysql_fetch_array($res);
}* Pro přesnost, něco udělá, ale až na nějaké obskurní scénáře zavolání té funkce nebude mít žádný vliv, výsledek bude stejný, jako by tam vůbec nebyla. |
||
| Taps Profil |
#16 · Zasláno: 28. 12. 2014, 10:51:05
Forms:
Nefunguje ani poupravená verze? |
||
| Forms Profil |
#17 · Zasláno: 28. 12. 2014, 11:23:53
nn nefunguje
|
||
| Taps Profil |
#18 · Zasláno: 28. 12. 2014, 11:44:05
Forms:
Zobrazí se nějaká chyba? |
||
| Forms Profil |
#19 · Zasláno: 28. 12. 2014, 11:45:02
Taps:
nn neukaže žadnou chybu pouze udělá refresh ale nic nezpracuje |
||
| Taps Profil |
Forms:
„pouze udělá refresh ale nic nezpracuje“ Na základě čeho se provádí ten refresh? Jakou máš tedy současnou verzi těch souborů? |
||
| Forms Profil |
Taps:
<?php
ffunction uprava_clienta($id) {
include_once "view/config/config.php";
$res = mysql_query("SELECT * FROM clients WHERE id = ".intval($id));
$row = mysql_fetch_array($res);
}
function stat_client($id, $client){
include_once "view/config/config.php";
mysql_query("set names utf8"); //dát do konfiguračního souboru
$client_stat = mysql_real_escape_string($client);
$id = intval($id);
$sql = "UPDATE clients SET client_stat = '$client_stat' WHERE id = ".$id;
$res = mysql_query($sql) or die ("Could not update".mysql_error());
if($res){
header('location:index.php?mode=status_clienta');
}
}
?>
volám :
<?php
include_once "view/script/script.php";
if(isset($_GET['edit'])){
$row = uprava_clienta($_GET['edit']);
}
?>
formulář:
<form action="" method="POST">
<table>
<tr>
<td><?php echo $row['id'];?></td>
</tr>
<tr>
<td><input type="hidden" name="id" value="<?php echo $row[id]; ?>"></td>
</tr>
<tr>
<td>
<select name="client_stat">
<option value="schvaleno">Schvaleno<option>
<option value="zamitnuto">Zamítnuto<option>
</select>
<input type="submit" value="Editovat"/>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</form |
||
| Taps Profil |
Forms:
první funkci jsem dodatečně ještě upravoval po upozornění Joker a Alphard <?
function uprava_clienta($id) {
include_once "view/config/config.php";
$res = mysql_query("SELECT * FROM clients WHERE id = ".intval($id));
$row = mysql_fetch_assoc($res);
return $row;
?>
} |
||
| Forms Profil |
#23 · Zasláno: 28. 12. 2014, 12:03:07
Tento už funguje
<?
function uprava_clienta($id) {
include_once "view/config/config.php";
$res = mysql_query("SELECT * FROM clients WHERE id = ".intval($id));
$row = mysql_fetch_assoc($res);
return $row;
?>
}ale tento stale ne function stat_client($id, $client){
include_once "view/config/config.php";
mysql_query("set names utf8"); //dát do konfiguračního souboru
$client_stat = mysql_real_escape_string($client);
$id = intval($id);
$sql = "UPDATE clients SET client_stat = '$client_stat' WHERE id = ".$id;
$res = mysql_query($sql) or die ("Could not update".mysql_error());
if($res){
header('location:index.php?mode=status_clienta');
}
} |
||
| lionel messi Profil |
Forms:
„ale tento stale ne“ boolean ale resource?Mne totiž toto funguje: function presmeruj($url)
{
header("Location: $url");
}
presmeruj("http://www.djpw.cz/");A aj toto: function presmeruj($url)
{
mysql_connect("localhost", "root", "");
mysql_select_db("db");
$res = mysql_query("SELECT * FROM tabulka");
if ($res)
{
header("Location: $url");
}
} |
||
| Forms Profil |
#25 · Zasláno: 28. 12. 2014, 12:37:42 · Upravil/a: Forms
nevím skoušel jsem spodek poupravit i po svém ale nepustí mě to furt to dává na stejnou stránku s formuláře i když ho odkazuji jinam
a nic nezpracuej |
||
| Taps Profil |
#26 · Zasláno: 28. 12. 2014, 12:47:52
Forms:
a jak voláš tu funkci? |
||
| Forms Profil |
#27 · Zasláno: 28. 12. 2014, 13:23:51
tak jak si psal :
<?php
include_once "view/script/script.php";
if(isset($_GET['edit'])){
$row = uprava_clienta($_GET['edit']);
}
?> |
||
| lionel messi Profil |
#28 · Zasláno: 28. 12. 2014, 13:31:06
Taps:
> Forms: > a jak voláš tu funkci? Taps myslel predovšetkým volanie funkcie stat_client, ktorá ti nefunguje.
|
||
| Forms Profil |
#29 · Zasláno: 28. 12. 2014, 13:37:14 · Upravil/a: Forms
Pardon ale už se v tom motáme celou dobu je jeden script uprava_clienta
potom jsem skoušel jak tu píšete rozděleni a od te doby to tahneme . volám celou dobu pouze funkci uprava_clienta nebot potřebuji aby takto byl cely script .... Je to na upravu dat v mysql ale aby to rozeznal tak sem dal podle id ....... Potřebuji vlasně script na upravu mysql podle id uživatele |
||
| mimochodec Profil |
#30 · Zasláno: 28. 12. 2014, 16:13:31
Jen dotaz. Tohle <?php echo $row
[id]; ?>, tzn bez uvozovek kolem id, vypisuje patricne id tak jak ma? |
||
|
Téma pokračuje na další straně.
|
|||
0