Jump to content
php.lv forumi

Mainīgo redzamības apgabals


Hedera
 Share

Recommended Posts

Iesācēja jautājums:

Man ir divi menu. Viens menu tiek izveidots no MYSQL tabulas datiem un tajā lietotājs izvēlas preces veidu. Ja nospiež uz otru menu (Apraksts. Cena. Tehniskie dati), tad uz ekrāna vajadzētu parādīties attiecīgās preces vai nu aprakstam vai cenu lapai vai tehniskiem datiem. Problēma ir tā, ka šie menu ir atsevišķos php failos un dati ir vairākās SQL tabulās. Ja izvēlas preci, tad neizdodas preces identifikatoru nosūtīt uz to php failu, kur switčā izvēlas cenu aprakstus vai tehn.datus.

Jautājums ir par to, kā vienu mainīgo vērtību var nosūtīt uz citu php failu. Mēģināju izmantot GLOBALS, bet nekas nesanāca.

Link to comment
Share on other sites

kāda ir failu struktūra/koncepcija - iframes/include ?

 

Tiek izmantots javascript menu un include.

Uz ekrāna tam jāizskatās tā:

 

Firmas apraksts........Preču veidi.......Kontaktinformācija

________________________________________________________________________________

 

......................................................................Apraksts........ Cenas........... Tehniskie dati

 

Ledusskapis ........................................ Te ir viss par ledusskapju cenām

Veļas māšīna

Dators

Zobu pasta

________________________________________________________________________________

 

 

No Preču_veidi.php tiek ar include tiek izsaukti divi faili, kas katrs apstrādā vienu menu. Ja lietotājs nospiež uz Ledusskapi, tad vajag attiecīgajā cenu tabulā pēc Ladusskapja id atrast vajadzīgo ierakstu. Kā pārsūtīt Ledusskapja id uz failu, kur nolasa ledusskapja cenu tabulu?

 

Divas dienas jau ņemos ar šito. :((

Link to comment
Share on other sites

Tas nav Inet veikals, tas ir tikai piemērs manam pirmajam eksperimentam uztaisīt kaut ko ar php. Pavisam vienkāršām lapiņām jau var iztikt arī ar HTML un Javascript, bet man šoreiz vajag, lai lietotājs pats varētu lapu vienreiz gadā papildināt, tas nozīmē, ka vajag datu bāzi.

Paldies par ieteikumu izmēģināt $_GET, $_POST.

Link to comment
Share on other sites

Tas nav Inet veikals, tas ir tikai piemērs manam pirmajam eksperimentam uztaisīt kaut ko ar php.

neko sev...

uzreiz kjeries pie prechu kataloga un DB :)

apsaluuti neko nezinot par PHP :)

-------

dodo 99,99% ka no tavas puses jautaajumi sekos kaudzeem...

P.S. iesaku sakumaa vismaz uztaisiit vienkaarshu formas apstraadi....

kautvai bez dizaina, ar iespeeju ierakstiit DB, lai vispaar saprasatu kaa kas straadaa....

jo ja nav pat saprashanas kaa nodot datus.....

Edited by Grey_Wolf
Link to comment
Share on other sites

neko sev...

uzreiz kjeries pie prechu kataloga un DB :)

apsaluuti neko nezinot par PHP :)

 

Kaut kad taču ir jāsāk. ;)) Un DB man strādā, vismaz viens menu aizpildās pareizi no DB. Vispār ir jau uztaisītas kādas 5 lapas ar HTML un Javascript un ir arī apmēram 15 gadu pieredze profesionālā programmēšanā (C++, Delphi, Foxpro, Oracle un nedaudz arī viss cits), tikai PHP gan esmu pilnīgs iesācējs (apmēram 2 nedēļas).

Starp citu $_GET un $_POST šajā gadījumā nestrādā.

 

Nu tā, ir fails index.php, kas apstrādā augējo menu:

if (!empty($_REQUEST['det'])) {

switch ($_REQUEST['det']) {

case 'uznemums':

include ("uznemums.php"); break;

case 'citroent':

include ("katalogs.php"); break;

case 'kontakti':

include ("kontakti.php"); break;

}}

 

Tad ir fails katalogs.php, kas no datu bāzes nolasa preces, ielasa meņūzī un kurā nostrādā otrs menu : Apraksts, Cenas, ... Tikai pēc menu izsaukšanas un atgriešanās atpakaļ uz šo pašu failu, pazūd id, kas parāda, kuram produktam īsti ir jārāda apraksts vai cenas.

 

<table>

<tr>

<td ><br</td>

<td><?php include ("menu_preces_apraksti.php"); ?></td>

</tr>

 

<tr> <td> <?php include ("menu_preces.php"); ?></td>

<td>

<?php

if (!empty($_REQUEST['cit'])) {

switch ($_REQUEST['cit']) {

case 'apraksts':

echo " id= $id cit= $cit"; break; // šito rāda nepareizi.

case 'cenas':

echo " id= $id cit= $cit"; break; // šito arī rāda nepareizi

}

} else {

 

if (!empty($_REQUEST['id'])) {

$id = $_REQUEST['id'];

 

if (!$result=mysql_query($sql, $link))

{echo "<br> Neizpilda pieprasījumu";exit();}

 

$rinda1=mysql_fetch_row($result);

$id=$rinda1[0];

echo "id $id marka $preču_marka "; // šitas strādā pareizi, tā kā no DB viss te tiek nolasīts.

?>

</td>

</tr>

</table>

Link to comment
Share on other sites

{echo "<br> Neizpilda pieprasījumu";exit();}

exit() ??? prieksh kam?

------

tas taa

-----

nu vienkaarshs piemeers:

kautkas1.php

<a href="kautkas2.php?id=nush_straadaa">kautkas</a>

un failaa kautkas2:

<?php

echo $_GET['id'];

?>

-------

pameegjini :)

ja viss apachis/php nokonfigureets pareizi tad paskaties ko izvadiis...

 

edit: starp citu

echo " id= $id cit= $cit"; break; // šito rāda nepareizi.........

kur tu pieskjir id vertiibu?

kur ir $id= $_GET['id'];

???????

-----

visticamaakais ka skatijies piemeerus kur globals=on....

tad straadaatu... ,pameklee tepat forumaa sodienas/vakardienas postus --> ZB atkartoties...

Edited by Grey_Wolf
Link to comment
Share on other sites

starp citu

echo " id= $id cit= $cit"; break; // šito rāda nepareizi.........

kur tu pieskjir id vertiibu?

kur ir $id= $_GET['id'];

???????

-----

visticamaakais ka skatijies piemeerus kur globals=on....

 

globals=Off (pārbaudīju).

 

Tur jau tas joks, ka no viena faila tiek izsaukti 2 menu (viens ir nolasīts no DB, bet otrs ir tikai pogas). Kad uz failu atgriež nospiesto pogu (Apraksts, Cenas utt), tad pazūd DB ieraksta numurs.

Ir jau taisnība, ka id netiek nekur aprakstīts, bet programmai to it kā vajadztu saprast un saglabāt (jautājums par mainīgo redzamību) no tā, ka iepriekš uz šī menu tika noklikšķināta pele. Kā šo id piefiksēt, lai php to nepazaudētu? Pirms nospiešanas uz menu Apraksts, Cenas, ... programma šo id redz un tabulā izvada uz ekrāna, bet pēc tam tas pazūd un uz ekrāna izvada tikai to, ka nospiesta poga Cenas.

 

Pēc pogas (3. menu) nospiešanas tiek tikai atgriezts:

mainMenuItem("Apraksts","Apraksts",36,135,"index.php?det=citroent&cit=apraksts","","",2,2,"mnu_plain");

Edited by Hedera
Link to comment
Share on other sites

Hedera --> tu vinju ar linku padod ?

kautkaa nemanu

P.S. PHP tachu ir serviss --> klients

un katras kods(skripts) izpildaas tikai 1 reizi ....

mainiigie nekur uz servera nesaglaabaajas.... neskatoties vai globaals ir on vai of ;)

tev vinsh caur get ir japadod atkartoti.... (vai jasaglabaa uz servera ar SESIJAS mainigo )

un pec tam janolasa ar $_GET (nu nolasas jau vinsh automatiski, preciizaak butu teikt japanjem no masiva)

 

edit: starp citu tavaa piemera daljaa...

if (!empty($_REQUEST['id'])) {
$id = $_REQUEST['id'];

if (!$result=mysql_query($sql, $link))
{echo "<br> Neizpilda pieprasījumu";exit();}

$rinda1=mysql_fetch_row($result);
$id=$rinda1[0];
echo "id $id marka $preču_marka "; // šitas strādā pareizi, tā kā no DB viss te tiek nolasīts. 
?>
</td>

tu vienmeer neaizver {} ???

Edited by Grey_Wolf
Link to comment
Share on other sites

>>>tu vinju ar linku padod ?kautkaa nemanu

 

Jā, vispirms tabulas kreisajā pusē tiek izvadīts preču katalogs, ko izveido failā menu_preces.php:

 

echo "startMainMenu(\"\",0,0,1,0,0);\n";

While ($rinda=mysql_fetch_row($result))

{

$id=$rinda[0];

$auto_marka=$rinda[1];

 

echo "mainMenuItem(\"$auto_marka\",\"$auto_marka\",21,165,\"index.php?det=citroent&id=$id\",\"\",\"\",2,2,\"mnu_plain\");\n";

 

}

echo "endMainMenu(\"\",0,0);\n";

 

Pēc tam tabulas augšpusē tiek izveidots otrs menu ar jau iepriekš zināmām pogām (include "menu_preces_apraksts.php).

 

Un tad tajā pašā failā notiek atgriezto vērtību apstrāde un no attiecīgās DB tabulas, meklējot pēc id, vajag nolasīt attiecīgo aprakstu.

 

Ok, mēģināšu kaut ko palasīt par sesijām. ;))

 

>>>tu vienmeer neaizver {} ???

Es tikai kopēju fragmentus no koda un bija slinkums meklēt }}, jo pa vidu bija daudz komentāri un viss kas lieks no testēšanas. ;))

Link to comment
Share on other sites

jaik...

 

Varbūt atkārtošos, bet nu tas būs kā ieteikums - Iemācies vispirms taisīt vienkāršas lietas. Sāc ar Blogu, -> Forums -> ... Vortals ... -> InetVeikals

 

Citādi būs kārtējais spam-topiks uz 10 lapām `par neko`...

Link to comment
Share on other sites

-->>Hedera:

-------

edit: starp citu

echo " id= $id cit= $cit"; break; // šito rāda nepareizi.........

kur tu pieskjir id vertiibu?

kur ir $id= $_GET['id'];

???????

-----

Šo vismaz 3 reizes tev centās pateikt, taču tu palaid to gar ausīm.

globals=Off (pārbaudīju).

Tev prasīja vai piemēros, no kuriem kopēji/skatījies/mācījies nebija lietots register_globals=on, nevis vai tavā php.ini failā ir register_globals=on. Pārskrienot pāri kodam ir skaidri manāms, ka piemēros tā ir bijis.

Ir arī skaidri manāms, ka tev nav priekšstats kā webbrowser`is komunicējas ar serveri, tādēļ iesaku uzmest aci RFC 2616, taču tas ir nepieciešams padziļinātai izpratnei par šo tēmu, kas tev ir maz nepieciešama. Tavā gadījumā viennozīmīgi nevar izmantot $_POST, taču obligāti vajag izmantot $_GET masīvu, lai tiktu klāt mainīgajiem, kas tiek padoti caur URL. Sesijām es vēl neieteiktu ķerties klāt, jo tās šajā problēmā diez vai palīdzēs. Iesaku vēlreiz no viena gala uzmanīgi izlasīt šo tēmu un nedaudz padomāt. Viss, kas ir sasteigts noved pie ne pārāk jauka rezultāta.

 

-->>Delfins: Ne vienmēr vajag sākt ar blogu, forumu utt. Ja cilvēks zin, ko dara (ne tā kā šajā gadījumā), tad viņa pirmais PHP projekts var būt jebkas.

Edited by Didulis
Link to comment
Share on other sites

 Share

×
×
  • Create New...