質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

3回答

5546閲覧

phpで請求書を作成する際に追加したい機能について

AY6M_

総合スコア14

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

2クリップ

投稿2016/07/14 02:28

編集2016/07/14 02:39

###実現したいこと

php初心者です。この度は業務管理システムを組むこととなり、調べながらいろいろと試行錯誤しているのですが、調べるにはキーワードが長すぎ抽象的なワードだと知りたい情報がなかなか手にはいらなかったので質問させていただきます。

今回は見積書/請求書を発行する機能をコンソールに持たせようとしており、機能としては

・最初(seikyuu.php、mitumori.php)には用紙の縦横の指定(プルダウンメニュー)、請求書の入力内容[会社名][郵便番号][住所][担当者様名][商品名][数量][金額][備考]、フォームの下に●●店ボタン(shop01seikyu.php) ○○店ボタン(shop02seikyu.php)を設置 という内容です。

そして各店のボタンを押されると情報がDBの各[請求テーブル][見積もりテーブル]に保存されると同時に、別ウインドウに完成した見積書と送付先住所とあいさつが印刷できる専用ページ(上記のshop**seikyu.php)に飛ぶという仕組みです。

ここまでは自力でなんとか出来そうなのですが(まだコードを書いている途中です..)、実装したい機能として、

顧客情報を自動で入力するボタンを押すと、別ウインドウ(kselect.php)が開き、その内容として
会社名検索フォーム[検索] ←検索ボタンを押すとしたの一覧の上に{会社名}カラムから検索した結果を表示+[選択]ボタン
SELECT * FROM 顧客テーブルで取得された顧客情報一覧と[選択]ボタン

※いずれもtableタグで一覧表示させる予定です
ここで、その顧客情報の[選択]ボタンを押すとウインドウが閉じ、元のウインドウの空フォームに自動で入力する機能、

商品も選択ボタンで選択でき、seikyuu.php上で確定した際はその商品を[販売済]テーブルに移動する機能、

最後に、seikyuu.phpには見積もり書のデータをそのまま持ってこれる機能

を実装したいのです。

php初心者なうえsqlの実行文などは大体わかるのですが、選択用の子ウインドウを開くとjavascriptまで絡んでくるのでお恥ずかしながらコードがまったく頭に浮かんで来ず悩んで数日経ってしまったので、質問させて頂きます...。

###サーバー詳細
CentOS7
Php5.4.16-36
MariaDB 5.5.47
Apache(httpd)2.4.6-40
ツールとしてphpmyadmin導入

[追記]
大事なこと書き忘れてました。
社長からの要求は「パソコンだけでなくスマホからなども回覧が可能であること」であり、私自身スマホアプリ(Androidならjava?)等の知識は皆無であり、HTMLのみノウハウがあったということ、過去にさくらのVPSでCentOSでWordpressを運用した経験があったため、Webブラウザ上で動作するコンソールとして開発しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2016/07/14 03:11

> 「パソコンだけでなくスマホからなども回覧が可能であること」 というのはスマホから閲覧だけでは無くて入力操作もできることという要件ですか?
AY6M_

2016/07/14 03:21

出来れば入力操作も可能とさせたいです。現状は、パソコンでのブラウザ表示が優先ということで進めています。(一応スマホからアクセスしてみたらいままで実装した機能(一覧表示、印刷画面表示、在庫登録)はそのまま操作でできてしまっているので、そのままでいけるのであればphpコードはベースのままデザインだけスマホ用に作り替えてしまおうと思います。とはいえ今回の質問内容のような案件だと、いけない気が...)
guest

回答3

0

回答にならないかもしれませんが、業務クリティカルとなるアプリを自ら初心者と言ってしまう方が構築するのはおすすめしません。
請求関係は例外処理も多くあると思います。
(私は営業職として長年勤めましたが、かなりの無理を業務側に依頼していました。)
パッケージアプリの導入を検討してはいかがでしょうか?

投稿2016/07/14 04:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AY6M_

2016/07/14 04:28

今回は「できるだけ業務を一本化する」という目的の元、請求書関係はよく使用する簡易的なテンプレートとして構築するとしている上、作業現場でも即発行ができること(タブレット端末させあれば、今はバッテリで動作するモバイルプリンタも在るので)や、顧客情報や在庫などをまとめて管理することになっているので、それが難しい状況なのであります。パッケージアプリですと融通が利かない上、外注に頼るとそれなりの金額がかかってしまう為、今回は私が請け持つ形となっています。(小規模企業なので私自身もそういった開発や運用の経験があったほうが将来的に役に立つと思うということもありますが...) 今更できませんとは言えない状況です。折角アドバイスを頂いたところ恐縮ですが、申し訳ないです...
退会済みユーザー

退会済みユーザー

2016/07/14 06:02

ちょっと御社の特殊性が理解できませんが、請求処理なんていうややこしいところで、実践しなくても。。。というのが正直な感想です。 例外処理を無視できるのであれば、2ヶ月で完成もそれほど難しくないとは思いますが。
AY6M_

2016/07/14 07:07

従業員数名で、あまり無茶がないのが救いです。 見積/請求処理も基本的には情報を取得して挿入、計算も基本的な足し算引き算のみで、結果をDBに保存しつつ印刷するだけ、という流れだけで深くまで立ち入った処理はシステム稼働開始後に追加実装でもいいのかなと思ってます。このシステムの狙いとしては、いままで現地作業の作業費なども郵送で担っていた請求書を現地の処理ですぐに渡せる効率化とコスト削減だけを狙ったシステムという意味では、例外処理(入力ミスで間違ったデータを保存してしまった)などはphpmyadmin側で対応するだけでもいいのかな、と思います。とは言え従業員が増えてきたら、確実に力不足になるのは目に見えるシステムでもあるので、何かしら打つ手は考えておかないといけないと痛感しました。参考になります...
AY6M_

2016/07/14 07:11

見返したら日本語がおかしくなってました。すいません... ×このシステムの狙いとしては、いままで現地作業の作業費なども郵送で担っていた請求書を現地の処理ですぐに渡せる効率化とコスト削減だけを狙ったシステムという意味では ○ このシステムの狙いとしては、いままで現地作業の作業費なども郵送で担っていた請求書を現地の処理ですぐに渡せる効率化とコスト削減だけを狙ったシステムです。そういう意味では、
退会済みユーザー

退会済みユーザー

2016/07/14 09:48

個人的には絶対にやりたくない系の業務改革なので、否定的なことを書きますね。 もちろん、良くなる点も多くあるとは思いますが、そちらに関してはすでに検討済みだと思いますので。 (あまり詳しくない分野なので、全てが正しい裏付けがあるわけではありません。) ・請求処理のエビデンスをどう残すか? エビデンスに関しては、税法上7年の保管が義務付けられています。客先発行した請求書の控えをどのように管理するか?業務フローを先に決定する必要があります。 ・間違った請求書の発行抑止をどのように行うか? 現状では、業務フローとして、検収が完了したモノを確認し、郵送することで、「間違った案件に対する請求書発行抑止」と「郵送先の登録による誤配送抑止」がなされていると思います。手渡しだと、どちらもかなり抑止するのが困難になります。 ・請求書発行に伴うコンプライアンス学習をどうするか? 請求書発行には、幾つもの「お作法」が存在します。それを現場作業者にどのように学習させるか、学習コストをどのように払うか、かなり大変だと思います。 ありそうなトラブルとして、ライバル会社に提供している似た内容の案件の請求書を間違って渡してしまうようなことが挙げられます。どの様に抑止するのか?渡してしまった場合、どの程度リスクとなるのか?等、かなり致命的なところがあるのですが、現状はシステム的に抑止されていることが、抑止できなくなることを評価し直したほうが良い気がします。
AY6M_

2016/07/15 00:03

詳細なご助言感謝いたします。 請求書の内容に関しては社長に打診してみます。
guest

0

ベストアンサー

参考URL
のような形で子ウィンドウから親ウィンドウの要素を操作してやればできますが、
別windowというUIだとスマホからは非常に操作しにくくなるかと思われます。

なので、
モーダルウィンドウで検索させてフォームに入力させたり、
HTML内に検索フォームを出現させて、同じHTML内で結果を操作する方がいいかもしれませんね。

この場合、検索結果を返す側のスクリプトとフォームがajaxで非同期通信を行い(jQueryで割と簡単にできます)、json等で結果を返した後、
javascript側でjsonをパースして値を取得し、HTMLの要素を操作するような形になります。

投稿2016/07/14 03:36

tanat

総合スコア18711

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AY6M_

2016/07/14 04:01

ありがとうございます。モーダルウィンドウという手段があるのは知りませんでした。(普段何気ない場所で使われているものでしたね....) すいません、時間があまりないので(初めてなのに2か月でこの案件を終わらせられると見込んだ私がバカでした...orz)おひとつだけお聞きしたいのですが、検索結果を返す側のスクリプト(ここでいうと[選択]ボタンを押した時?)とフォームの非同期通信に関して、具体的でなくても良いのでどういったコード/ファイル構成になるのか、参考URLでも良いので教えていただけますでしょうか。
tanat

2016/07/14 04:23

率直に言うと、デバッグなどでちゃんと動く様になるまではあと数か月はかかっちゃうんじゃないかなあという印象です。 社内のシステムで、ある程度融通が効く状態なのであれば見積もりが甘かったことを報告して、着地点を探す方が先だと思います。 以下、技術的な流れです。 *jQueryの情報が古かったりすることもあると思うので、その場合はjQuery+したいことで検索して下さい。 ajaxでもやってることは普通のPHPと一緒で、返す結果がHTMLではなくってJSON(等)になるだけです。 構成としては、 ・検索フォームのあるHTML ・検索結果を返すPHP という構成になります。 ・検索結果を返すPHP はこれまではHTMLを組み立てて表示していたと思いますが、このケースでは結果を連想配列に格納し、json_encodeでjson化したものをechoするような形になります。 ・検索フォームのあるHTMLからは http://raining.bear-life.com/jquery/ajax%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6post%E9%80%81%E4%BF%A1%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%96%E5%BE%97 http://javatechnology.net/ajax/post-submit/ 等を参考にしてajaxで検索結果を返すPHPにPOSTしてjsonで結果を取得してください。 取得したjsonをパースして、javascriptの変数として扱えるようにしたら http://tech.basicinc.jp/jQuery/2013/08/07/jquery_form/ この辺を参考にしてフォームの値を操作します。
tanat

2016/07/14 06:06

> 着地点を探す方が先だと思います。 というのは例えば最初は入力はPCからのみとして、スマホからは閲覧だけにしてね みたいな感じで機能を制限するとかそういった感じですね。
AY6M_

2016/07/14 06:51

ありがとうございます 今実践中です。 >着地点 スマホ版に関しては急がないようなので、PC版に集中して開発したいと思います。
guest

0

UIの仕様についておそらくjavascriptでの作業になります。
一度jQueryをベースに学習なさってみてはいかがでしょうか?

投稿2016/07/14 03:11

yambejp

総合スコア114747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AY6M_

2016/07/14 03:28

>jQuery 参考になります。今は納期を急ぐのでコード自体をこういう質問投げする形になってしまっていますが、将来的に新たな機能を追加するためにも、今の実装も兼ねながら学習していこうと思います。 しかし、現時点ではphp含めどう記述して良いか解らなかったのです....(プログラムの流れは大体つかめても、コーディングができない)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問