java script かajaxのカテゴリーだと思います。
受注管理のシステムを作成しております。
PHP 5.x
MySQL 5.x
です。
管理者が商品受注のデータを入力する際に、商品名をプルダウン等で選ぶのがイヤで
商品コード(例:1001等)を手打ちで入力して、その瞬間その画面で、商品名と金額を呼び出して、あとは個数を入れる
という作業を10商品くらい繰りかした後、単価×個数を全て計算して合計金額をその場で
表示されることはできないでしょうか?
どなたかお詳しい方、お知恵を貸してください!!
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
そして、さっそくていせい。
これらしきところを、これに。
ajax ('sql.php', 'post', {sql: 'SELECT name, tanka FROM database_name WHERE id=' + cd + ' LIMIT 1'}, function (res) {
やっつけでかいたから、うごかせないなら、あきらめてね
No.5
- 回答日時:
その2
(function () { // Ajax
if ('undefined' === typeof XMLHttpRequest)
this.XMLHttpRequest =
(function () {
for (var i = 0, h; h = arguments[i++];)
try { h (); return h; } catch (err) { ; }
return null;
})(function () { return new ActiveXObject ('Msxml2.XMLHTTP.6.0') },
function () { return new ActiveXObject ('Msxml2.XMLHTTP.3.0') });
var obj2str =
(function (obj) {
var p = [];
var i, I, k, q, idx, key, val;
switch (typeof obj) {
case 'string' :
obj = obj.split ('\u0026');
for (i = 0, I = obj.length; i < I; i++) {
if (q = obj[i]) {
idx = q.indexOf ('=');
if (-1 === idx)
break;
key = encodeURIComponent ( q.substring (0, idx));
val = encodeURIComponent ( q.substring (idx + 1)) || '';
p.push (key + '=' + val);
}
}
return (p.length) ? '\u0026' + p.join ('\u0026'): '';
case 'object' :
for (i in obj)
if (obj.hasOwnProperty (i))
p.push (encodeURIComponent (i) + '=' + encodeURIComponent (obj[i]));
return (p.length) ? '\u0026' + p.join ('\u0026'): '';
}
});
var ajax =
(function (uri, method, parameter, callbackfn, callbackobj) {
var httpObj;
var para;
if (httpObj = new XMLHttpRequest) {
para = 'SendTime=' + (new Date).getTime() + obj2str (parameter);
if ('GET' === method.toUpperCase ())
uri += '?' + para;
httpObj.open (method, uri, true);
httpObj.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
httpObj.onreadystatechange =
function () {
if (4 === httpObj.readyState) {
try {
if (200 === httpObj.status)
callbackfn.call (callbackobj, httpObj.responseText);
}
catch (err) { ; }
httpObj.onreadystatechange = new Function;
uri = method = parameter = callbackfn = callbackobj = httpObj = para = null;
}
};
httpObj.send (para);
}
});
this.ajax = ajax;
})();
</script>
No.4
- 回答日時:
すくりぷとぶぶんをぶんかつ。
<script>
var table = document.getElementById ('hoge');
function calculate () {
var tr = table.querySelectorAll ('tbody > tr');
Array.forEach (tr, function (tr, idx) {
var inp = tr.querySelectorAll ('input');
var up = parseFloat (inp[2].value);
var qt = parseFloat (inp[3].value);
var pr = 0;
if (idx === this.max)
inp[4].value = this.total;
else if (isNaN (up) || isNaN (qt))
return;
else {
inp[4].value = (pr = up * qt);
this.total += pr;
}
}, {max: tr.length - 1, total : 0});
}
function handler (evt) { /*@cc_on*/
var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
var tr = e.parentNode.parentNode;
var inp = tr.querySelectorAll ('input');
var cd;
switch (e.name) {
case 'qt' : case 'up' :
calculate ();
break;
case 'cd' :
cd = e.value;
ajax ('sql.php', 'post', {sql: 'SELECT name, furigana FROM zenkohdo.shain WHERE id=' + cd + ' LIMIT 1'}, function (res) {
var rec;
if (! /^Error/.test (res)) {
rec = res.split (/\u001f/g);
this[1].value = rec[0];
this[2].value = rec[1];
this[3].focus ();
}
}, inp);
break;
}
}
table./*@if (@_jscript)
attachEvent ('onfocusout' + @else@*/
addEventListener ('blur'/*@end@*/,
handler, true);
(function (t) {
var tbody = t.querySelector ('tbody');
var tr = tbody.querySelector ('tr');
var max = 10;
while (--max)
tbody.appendChild (tr.cloneNode (true));
})(table);
No.3
- 回答日時:
ajaxをとうさいしてみる
でんじゃらすだし、すくりぷとからSQLぶんをおくるなんてもってのほかだけど、やってみる。
うごかせないなら、あきらめようね
まずは、sql.php として
<?php
mb_language ('Japanese');
define ('HOST', '127.0.0.1');
define ('USER', 'root');
define ('PASS', 'xxxxxxxxxxx');
$ID = mysql_connect (HOST, USER, PASS);
if ($ID) {
$sql = $_POST['sql'];
if ($sql) {
$R = mysql_query ($sql, $ID);
if ($R) {
while ($r = mysql_fetch_array ($R, MYSQL_NUM))
$b[] = join (chr (31), $r);
exit (join (chr (30), $b));
}
}
}
exit ('Error');
?>
No.2
- 回答日時:
提案としてこんなUIはどうでしょう。
(コード汚いのは重々承知です。)※絞込しかやってないです。
<body>
<input type="text" id="inputArea">
<div id="output"></div>
<script type="text/javascript">
/*
@regepan
*/
var inputArea = document.getElementById('inputArea');
inputArea.addEventListener( 'keyup', keyupEvent, false );
var output = document.getElementById('output');
var txt;
var i;
var items = [];
// 初期化
function init()
{
for( i = 0; i < 50; i++ )
{
var obj = {};
var num = Math.floor( Math.random() * 10 ) + '';
num += Math.floor( Math.random() * 10 ) + '';
num += Math.floor( Math.random() * 10 );
obj.id = num;
obj.name = '商品名';
obj.price = 1000;
txt = document.createTextNode( obj.id + ' ' + obj.name + ' ' + obj.price );
var a = document.createElement('a');
a.href = '#';
var p = document.createElement('p');;
a.appendChild( txt )
p.appendChild( a );
output.appendChild( p );
items.push( obj );
}
}
init();
// itemの再構築
function makeList()
{
for( i = 0; i < items.length; i++ )
{
var obj = items[i];
txt = document.createTextNode( obj.id + ' ' + obj.name + ' ' + obj.price );
var a = document.createElement('a');
a.href = '#';
var p = document.createElement('p');;
a.appendChild( txt )
p.appendChild( a );
output.appendChild( p );
}
}
// keyupEvent
function keyupEvent()
{
var pool = [];
var temp;
var str;
var val;
output.innerHTML = '';
for( i = 0; i < items.length; i++ )
{
val = this.value;
val = val.slice( 0, this.value.length );
var item = items[i];
temp = item.id;
temp = temp.slice( 0, this.value.length );
temp -= 0;
if( val == '' )
{
makeList();
break;
}
else
{
if( temp == val )
{
txt = document.createTextNode( item.id + ' ' + item.name + ' ' + item.price );
var a = document.createElement('a');
a.href = '#';
var p = document.createElement('p');
a.appendChild( txt )
p.appendChild( a );
output.appendChild( p );
}// if
}// if
}// for
}// keyupEvent
</script>
</body>
No.1
- 回答日時:
もじすうせいげんがなかったら、もっとかけたのに、ざんねん。
こーどのしつも、ざんねんだけど、ajax は、だれかに!
<!DOCTYPE html>
<title></title>
<style type="text/css">
table, td, th { border :1px #888 solid }
td input[type="text"] { border : 0px none }
</style>
<body>
<form action="#">
<table id="hoge">
<thead><tr><th>コード<th>商品名<th>単価<th>個数<th>金額</thead>
<tbody>
<tr>
<td><input type="text" name="cd" value="" size="10">
<td><input type="text" name="pn" value="" size="20">
<td><input type="text" name="up" value="" size="10">
<td><input type="text" name="qt" value="" size="10">
<td><input type="text" name="pr" value="" size="16">
</tbody>
</table>
</form>
<script>
var table = document.getElementById ('hoge');
function calculate () {
var tr = table.querySelectorAll ('tbody > tr');
Array.forEach (tr, function (tr, idx) {
var inp = tr.querySelectorAll ('input');
var up = parseFloat (inp[2].value);
var qt = parseFloat (inp[3].value);
var pr = 0;
if (idx === this.max)
inp[4].value = this.total;
else if (isNaN (up) || isNaN (qt))
return;
else {
inp[4].value = (pr = up * qt);
this.total += pr;
}
}, {max: tr.length - 1, total : 0});
}
function handler (evt) { /*@cc_on*/
var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
var tr = e.parentNode.parentNode;
var inp = tr.querySelectorAll ('input');
var cd;
switch (e.name) {
case 'qt' : case 'up' :
calculate ();
break;
case 'cd' :
cd = e.value;
// ここにAjaxでよびだすこーどをかく!
if (cd === '123') {
inp[1].value = '洋野町名産 塩ウニ';
inp[2].value = '1800';
}
break;
}
}
table./*@if (@_jscript)
attachEvent ('onfocusout' + @else@*/
addEventListener ('blur'/*@end@*/,
handler, true);
(function (t) {
var tbody = t.querySelector ('tbody');
var tr = tbody.querySelector ('tr');
var max = 10;
while (--max)
tbody.appendChild (tr.cloneNode (true));
})(table);
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
javascriptでiframeのURL変更は?
-
C#OpenCv V4にのエラーに関する...
-
responseTextから連想配列へ
-
gas スプレッドシートがアクテ...
-
C#で、ContextMenuStripに動的...
-
GASでundefinedエラーが出ます
-
【乱数】任意の範囲、固定個数...
-
ASP.NETのコントロールの値をJa...
-
どうすれば良いでしょうか?
-
ジェネレーターの作り方
-
アコーディオンメニューの高さ...
-
船のゲームを作っているのです...
-
var_dumpのdump意味はを知りた...
-
イラレでナンバリングする方法
-
極小コードに挑戦!part2 数列...
-
ASP.NET MVCでObjectをjsに渡す
-
なぜmatchメソッドがエラーにな...
-
JavaScriptで平日のみをカウン...
-
javascriptでの時刻表示カスタム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
google apps scriptの終了のさせ方
-
ジェネレーターの作り方
-
ASP.NETのコントロールの値をJa...
-
C#で、ContextMenuStripに動的...
-
GASでundefinedエラーが出ます
-
ASP.NET MVCでObjectをjsに渡す
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
gas スプレッドシートがアクテ...
-
シンプルなweb版スタンプラリー...
-
html javascript リンク先アド...
-
ローカルにあるファイルを検索...
-
javascriptでiframeのURL変更は?
-
javaScript textareaの一行あた...
-
イベントが初めの一回しか起き...
-
C# 演算 奇数と偶数 表現の仕方
-
JavaScriptを使って毎日決まっ...
-
googleスプレッドシートのApps ...
-
条件に応じて座席表をつくりた...
おすすめ情報