- PR -

window.open時のURLで、値を変数から渡したい

1
投稿者投稿内容
ゆい
会議室デビュー日: 2006/11/13
投稿数: 6
投稿日時: 2006-11-16 11:38
いつもお世話になります。ユイです。

またまた、初歩的な質問なんです。行き詰まってしまって。。。

------------------------------------
<%
toriCD = Request.QueryString("toriCD")
If toriCD="" Or not IsNumeric(toriCD) Then Response.Redirect "QSSquery.asp"
Set db = Server.CreateObject("ADODB.Connection")
db.Open "VVmdb"
SQL = "SELECT * FROM QSS WHERE 組合員コード = FORMAT(" & toriCD & ",'00000000')"
Set rs = db.Execute(SQL)
If rs.EOF Then Response.Redirect "QSSquery.asp" 'toriCDの値が不正な場合
%>
<HTML>
<HEAD>

<SCRIPT Language="JavaScript">
<!--
function printWork(toriCD)
{
{
URL ="http://182.450.100.1/root/ss/MeisaiPrint.asp?toriCD="+toriCD
alert(toriCD)
window.open(URL,"","WIDTH=600,HEIGHT=600");
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>

省略 省略 省略 省略 省略 省略

<FORM name="MyForm" action="" method="POST">
<%
Response.Write"<INPUT TYPE='button'"
Response.Write "VALUE='印 刷'"
Response.Write "onClick='printWork(" & toriCD & ")'>"
%>
</button>
</FORM>


------------------------------------
上記スクリプトで、印刷ボタンをクリックすると、変数のtoriCD(数字8桁)を子ウィンドウに渡すページです。

しかし、変数値によって子ウィンドウに渡すときとtoriCDに代入している数値が変わっているために対象のページを開くことができません。

例えば、toriCDに00000137を代入し、子ウィンドウを開くときのURLのtoriCDには95が入ってます。alert(toriCD)でも95が表示されます。


2日、悩んでおりどうにもなりません。
どのようにすれば解消されるでしょうか。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-11-16 12:05
8進数で、137を見てみると分かりますよ。

「普通の文字列」として強制的に認識させる必要がありますね。JavascriptだとparseInt付けないと文字列として扱ってたような気がするんですが・・・
とりあえず、HTMLのソースを確認してみてどちら側で8進数として扱ってしまっているかを確認してみて下さい。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-11-16 12:07
こんにちは。

コード:

Response.Write "onClick='printWork(" & toriCD & ")'>"
↓
Response.Write "onClick=""printWork('" & toriCD & "')"">"


こんな感じで(テストも何もまったくしていませんが)。

たぶん JavaScript の仕様( C 由来?)で「先頭が 0 で始まる数字は8進数と見
なされる」ということなのだと思います。

あと、ASP なのだとは思いますが、環境ぐらいはキチンと書くようにしましょう。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
1

スキルアップ/キャリアアップ(JOB@IT)