praegune kellaaeg 20.06.2025 19:42:58
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
comodo
HV vaatleja
liitunud: 14.04.2009
|
04.12.2011 16:41:38
PHP: Kuidas lisada vormile uut lahtrit ? |
|
|
Hetkel on käsil arvesüsteemi kohendamine. See näeb välja selline,et sisestad kliendi nime,aadressi jne ning toote nime,koguse ja hinna.
Seejärel salvestad andmed ning need ilmuvad index.php lehel tabelisse. Andmetele klikkides avaneb PDF dokument (et saaks välja printida).
Nüüd oleks vaja teha väike uuendus: Lisada hinna alla uus lahter,et müüja saaks sisestada summa sõnades. (10 € - kümme eurot).
Lahter ilmub ilusti,kui on vaja andmeid sisestada,aga kui PDF avan,siis sinna ei teki sisestatud andmeid.
Tegin sama põhimõtte järgi nagu $klient ,aga ei hakka tööle.
Kuna ma igapäevaselt selliste asjadega ei tegele,siis äkki teen midagi valesti.
See on siis algne kood.Kõik,mis ei töötanud,kustutasin ära.
SISESTAN ANDMEID:
<?php
require("conf.php");
if($salvesta=="salvesta")
{
$kasutajarida=@mysql_fetch_array(@mysql_query("SELECT arve_nr FROM a_kasutajad WHERE id='".$HTTP_SESSION_VARS["login_id"]."'"));
$rida=@mysql_fetch_array(@mysql_query("SELECT arve_nr+1 FROM a_arved02 WHERE kasutaja='".$HTTP_SESSION_VARS["login_id"]."' AND YEAR(aeg)=YEAR(NOW()) ORDER BY arve_nr DESC LIMIT 1"));
if($rida[0]<$kasutajarida[0])
$rida[0]=$kasutajarida[0];
@mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis) VALUES ('".$rida[0]."', '$klient', '$aadress', NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis')");
$arve_id=@mysql_insert_id();
for($i=0;$i<$arveridu;$i++)
{
if(${toode.$i}=="" && ${hind.$i}=="" && ${kogus.$i}=="")
{}
else
@mysql_query("INSERT INTO a_tooted02 (nimi,hind,kogus,arve) VALUES ('".${toode.$i}."', '".${hind.$i}."', '".${kogus.$i}."', '$arve_id')");
}
header("Location: index.php");
exit();
}
if($arveridu==0)
$arveridu=1;
if($aeg==0)
{
$aeg=date("d.m.Y");
$makset2htaeg="7 päeva";
}
if($lisarida=="lisa rida")
$arveridu++;
?>
<a href=index.php>tagasi</a>
<br>
<form id=vorm>
<input type=hidden name=arveridu value=<?=$arveridu?>>
PROFORMA <input type=checkbox value=1 name=proforma<?php if($proforma==1)echo " checked";?>><br>
Klient: <input type=text size=30 name=klient value="<?=$klient?>"><br>
Aadress: <input type=text size=50 name=aadress value="<?=$aadress?>"><br>
Maksetähtaeg: <input type=text name=makset2htaeg value="<?=$makset2htaeg?>"><br>
Makseviis: <input type="radio" name="makseviis" value="0"<?php if(!$makseviis)echo " CHECKED"?>>Ülekandega <input type="radio" name="makseviis" value="1"<?php if($makseviis)echo " CHECKED"?>>Sularahas<br>
<br>
<?php echo $js;?>
<br><br>
<input type=submit value="salvesta" name="salvesta">
</form>
VAATAN PDF'iga ANDMEID
<?php
require("conf.php");
$rida=@mysql_fetch_array(@mysql_query("SELECT id,DATE_FORMAT(aeg,'%d.%m.%Y') AS aeg,arve_nr,klient,aadress,sisestatud,kasutaja,proforma,makset2htaeg,IF(makseviis=1,'Sularahas','Ülekandega') AS makseviis FROM a_arved WHERE id='$arve'"));
$tooted=@mysql_query("SELECT * FROM a_tooted WHERE arve='$arve' ORDER BY id");
$arveridu=@mysql_num_rows($tooted);
extract($rida);
function pdf_code($jutt)
{
return str_replace("(", "(", str_replace(")", ")", str_replace("\", "\\", $jutt)));
}
VAHEPEAL ON MÕÕDUD JNE
$y=$y2;
if($proforma)
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x1, "tekst"=>"PROFORMA", "fontstyle"=>1, "fontsize"=>$fontsize));
pdf_row();
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>460, "tekst"=>"Kuupäev", "fontstyle"=>0, "fontsize"=>$fontsize));
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>510, "tekst"=>$aeg, "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Arve nr", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$arve_nr, "fontstyle"=>1, "fontsize"=>$fontsize));
if($proforma)
{
pdf_row();
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Maksetähtaeg:", "fontstyle"=>1, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$makset2htaeg, "fontstyle"=>1, "fontsize"=>$fontsize));
}
pdf_row();
pdf_row();
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Maksja:", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$klient, "fontstyle"=>1, "fontsize"=>$fontsize));
pdf_row();
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Aadress:", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$aadress, "fontstyle"=>1, "fontsize"=>$fontsize));
pdf_row();
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Makseviis:", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$makseviis, "fontstyle"=>1, "fontsize"=>$fontsize));
$y=250;
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Kauba nimetus", "fontstyle"=>1, "fontsize"=>$fontsize));
$x=$x4;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Kogus", "fontstyle"=>1, "fontsize"=>$fontsize));
$x=$x4+50;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Hind", "fontstyle"=>1, "fontsize"=>$fontsize));
$x=$x4+100;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Summa", "fontstyle"=>1, "fontsize"=>$fontsize));
$summa=0;
while($rida=@mysql_fetch_array($tooted))
{
pdf_row();
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$rida["nimi"], "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x4;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>round($rida["kogus"],2), "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x4+50;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>round($rida["hind"],2), "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x4+100;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>round($rida["hind"]*$rida["kogus"],2), "fontstyle"=>0, "fontsize"=>$fontsize));
$summa+=$rida["hind"]*$rida["kogus"];
}
JA EDASI ON PDF OMAD READ.
|
|
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
05.12.2011 11:14:23
|
|
|
Igaks juhuks küsin üle, mida sa täpselt tegid?
S.t. kas lisasid uue väärtuse kõigisse vajalikesse SQL lausetesse? Kui jätta see sisestamise juures baasi kirjutamata või PDF koostamise ajal baasist lugemata, ei saagi see kuhugi ilmuda.
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
comodo
HV vaatleja
liitunud: 14.04.2009
|
05.12.2011 11:40:37
|
|
|
Aitäh vastamise eest!
Ma usun,et lisasin väärtuse kõigisse vajalikesse SQL lausetesse ja läksin baasi ja lõin uue väärtuse.
Aga tundub,et ma teen midagi siiski valesti, sest ma ei puutu programmeerimisega igapäevaselt kokku.
Seega,kas te saaksite öelda,kuidas teie täpsemalt need väärtused lisaks?
|
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
05.12.2011 13:29:37
|
|
|
Esmapilgul vajavad täiendamist need laused:
@mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis) VALUES ('".$rida[0]."', '$klient', '$aadress', NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis')");
$rida=@mysql_fetch_array(@mysql_query("SELECT id,DATE_FORMAT(aeg,'%d.%m.%Y') AS aeg,arve_nr,klient,aadress,sisestatud,kasutaja,proforma,makset2htaeg,IF(makseviis=1,'Sularahas','Ülekandega') AS makseviis FROM a_arved WHERE id='$arve'")); |
Lisaks peaks PDF koostamisele lisama selle mudeli järgi jupi, mis lisaks faili eelmainitud "summa sõnades" veeru.
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Arve nr", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$arve_nr, "fontstyle"=>1, "fontsize"=>$fontsize)); |
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
comodo
HV vaatleja
liitunud: 14.04.2009
|
05.12.2011 13:46:51
|
|
|
Nii arvasin mina ka. Proovisin üht ja teistpidi,aga ei tööta.
Muutused tuleb teha nii? :
infidel kirjutas: |
Esmapilgul vajavad täiendamist need laused:
@mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis,summasonades,) VALUES ('".$rida[0]."', '$klient', '$aadress', '$summasonades',NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis')");
$rida=@mysql_fetch_array(@mysql_query("SELECT id,DATE_FORMAT(aeg,'%d.%m.%Y') AS aeg,arve_nr,klient,aadress,sisestatud,kasutaja,proforma,makset2htaeg,summasonades,IF(makseviis=1,'Sularahas','Ülekandega') AS makseviis FROM a_arved WHERE id='$arve'")); |
Lisaks peaks PDF koostamisele lisama selle mudeli järgi jupi, mis lisaks faili eelmainitud "summa sõnades" veeru.
$x=$x1;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Arve nr", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$arve_nr, "fontstyle"=>1, "fontsize"=>$fontsize));
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Summa sonades", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$summasonades, "fontstyle"=>1, "fontsize"=>$fontsize));
|
|
|
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
05.12.2011 14:02:32
|
|
|
tsitaat: |
"INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis,summasonades,) VALUES |
esiteks, ei käi viimase lahtri järgi koma ja teiseks mis on vist sul asja point, sa pead ennem oma tabelit ju ka täiendama, kas seal on lahter summasonades juurde lisatud? See päring lisaks sinna lahtrisse, kuid ta ei tekita uut lahtrit tabelisse.
Edit!
Vaatasin veelkord, sul on ju seal päringus järjekorrad täiesti sassi aetud, sa ei saa seda summasonades suvalisse kohta vahele torgata, value käib ikka täpselt selles järjekorras, mis lahtrid ette antakse.
@mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis,summasonades) VALUES ('".$rida[0]."', '$klient', '$aadress', NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis', '$summasonades')"); |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
comodo
HV vaatleja
liitunud: 14.04.2009
|
05.12.2011 14:26:00
|
|
|
Proovisin teha nii ja naa. Absoluutselt mitte midagi ei mõju.
array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Summa sonades", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;
Summa sonades trükib ta välja ,aga selle $summasonades väärtust ei trüki ikka veel.
"Sa pead ennem oma tabelit ju ka täiendama, kas seal on lahter summasonades juurde lisatud? See päring lisaks sinna lahtrisse, kuid ta ei tekita uut lahtrit tabelisse."
Tähendab kui ma nüüd õigesti aru sain sellest lausest,siis selles tabelis ta ei pea üldse olema. See tabel,mis index.php lehel on näitab kiirülevaadet. Näiteks kliendi nimi ja kuupäev. Kui sellele klikata,siis lööb alles PDF lahti kõikide andmetega.
Oluline on,et PDF'i peal näitab summasonadega väärtust.
|
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
05.12.2011 15:02:35
|
|
|
miks peab üldse summa sõnadega keegi käsitsi kirjutama? Sellise asja võiks ju skript ise kokku kirjutada siiski
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
Andykas
HV veteran

liitunud: 28.08.2004
|
|
Kommentaarid: 25 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
22 |
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
05.12.2011 16:03:52
|
|
|
Renka kirjutas: |
miks peab üldse summa sõnadega keegi käsitsi kirjutama? Sellise asja võiks ju skript ise kokku kirjutada siiski  |
Ehk on mõeldud seda lisakontrollina andmesisestajale?
Comodo kirjutas: |
Proovisin teha nii ja naa. Absoluutselt mitte midagi ei mõju. |
Vaatasin koodi veidi hoolikamalt:
Andmed sisestatakse tabelisse "a_arved02", hiljem aga loetakse tabelist "a_arved". Kas nende kahe tabeli vahel on mingi baasipõhine seos?
Kommentaari "VAHEPEAL ON MÕÕDUD JNE" asemel peaks olema ka koodijupp, mis tekitab baasipäringu vastuse $rida põhjal väärtused muutujatele $proforma, $aeg jt. Seal peaks oma väärtuse saama ka $summasonadega.
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
serk
HV kasutaja
liitunud: 24.05.2003
|
05.12.2011 23:51:07
|
|
|
Teeme siis puust ja punaseks:
1) Lisa uus veerg andmebaasi tabelisse
2) Muuda PHPs andmete sisestamise vormi, lisa uus veerg
3) Muuda PHPs andmete sisestamise koodi, lisa uus veerg INSERT/UPDATE lausesse. Kuna sa asjast väga ei tea, siis lisa esialgu staatiline väärtus INSERT lausesse. Siis saad aru, kas muudad üldse õiget kohta.
4) Veendu, et sisestatud andmed salvestatakse andmebaasi
5) Lisa uue veeru näitamise kood PDFi genereerimise scripti ehk muuda SELECT lauset PHPs ja lisa veeru näitamine PDFi.
Kõigepealt veendu, et punkt 4 saaks täidetud. Unusta see PDF ennem üldse ära.
Kui see kõik käib ülejõu, palka abiline.
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
comodo
HV vaatleja
liitunud: 14.04.2009
|
08.12.2011 14:23:42
|
|
|
Suur tänu vihjete eest!
Tundub,et suure kustutamise ja uuesti lisamise peale jäi mingil hetkel muutmata NAME väärtus: Summa sõnadega:<input type=text size=30 name=sonadega value="<?=$sonadega?>"> <br>
Alguses oli see mul õigesti,aga pärast kustutasin kõik ära ja lisasin uuesti ning siis jäi see muutmata. Pärast seda panin ka Insert päringud õigesse järjekorda uuesti ja hakkaski tööle.
Nii,et algselt oligi probleem päringu järjekorras, ma usun.
Muideks,see summa sõnades võib skript ise küll kokku kirjutada,aga peale "sonadega" väärtuse on mul vaja veel mõned juurde panna. Ehk siis see probleem vajas nii või teisiti lahendamist.
Aga suur-suur tänu abi eest teile !
|
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|