PHPの配列にもっている値を、JavaScriptで利用する場合のサンプルです。
- <!--?php
- $data = array("SampleDetail" =-->
- array(
- "1" => array("num" => "10"),
- "2" => array("num" => "20"),
- "3" => array("num" => "30"),
- "4" => array("num" => "40"),
- "5" => array("num" => "50"),
- "total" => array("num" => ''),
- ));
- function h($val, $mode = ENT_QUOTES)
- {
- return htmlspecialchars($val, $mode);
- }
- ?>
- <!--TemplateBeginIf cond="0" -->
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <!--TemplateEndIf -->
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <!-- TemplateBeginEditable name="doctitle" -->
- <title>サンプルシステム</title>
- <!-- TemplateEndEditable -->
- <!-- jquery-ui -->
- <script src="lib/jquery/jquery-1.11.2.min.js"></script>
- <!-- bootstrap -->
- <script src="lib/bootstrap-3.3.4/js/bootstrap.min.js"></script>
- <link href="lib/bootstrap-3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="css/bootstrap2_custom.css" rel="stylesheet">
- <!-- TemplateBeginEditable name="head" -->
- <!-- TemplateEndEditable -->
- <div class="contents">
- <!-- InstanceBeginEditable name="contents" -->
- <form action="./index" name="form" id="IndexForm" method="post" accept-charset="utf-8">
- <style type="text/css">
- input:disabled,
- .readOnly {
- border: none;
- background-color: #FFFFFF !important;
- }
- .bg-pink input:disabled {
- border: none;
- background-color: #f2dede !important;
- }
- </style>
- <div style="display:none;"><input type="hidden" name="_method" value="PUT"></div>
- <div class="w650">
- <div class="row">
- <div class="col-sm-12">
- <h1>サンプル画面</h1>
- </div>
- </div>
- $val) {
- ?>
- <table class="table table-bordered th-fill w650">
- <tbody><tr>
- <th class="w200">商品名</th>
- <th class="w80">数量</th>
- </tr>
- <tr>
- <!--?php
- $total = $data['SampleDetail']['total'];
- unset($data['SampleDetail']['total']);
- foreach ($data['SampleDetail'] as $key =--><th>
- 名称_<!--?php echo h($key); ?--></th>
- <td class="right"><input name="data[SampleDetail][<?php echo h($key); ?>][num]" size="9" maxlength="9" class="ime-off right" type="text" value="<?php echo h($val[" num"]);="" ?="">" id="SampleDetail<!--?php echo h($key); ?-->Num"/></td>
- </tr>
- <tr>
- <!--?php
- }
- ?-->
- <th>計</th>
- <td class="right"><input name="data[SampleDetail][total][num]" size="9" maxlength="9" class="ime-off right" disabled="disabled" type="text" id="SampleDetailTotalNum"></td>
- </tr>
- </tbody></table>
- </div>
- <div class="hide">
- <input type="hidden" name="data[DeliveryPlan][id]" value="1" id="DeliveryPlanId"><input type="hidden" name="data[DeliveryPlan][updated]" value="2015-12-14 08:59:59" id="DeliveryPlanUpdated"><input type="hidden" name="data[DeliveryPlan][status]" value="2" id="DeliveryPlanStatus"><input type="hidden" name="data[Order][id]" id="OrderId"><input type="hidden" name="data[OrderA][keiyaku_date]" id="OrderAKeiyakuDate"><input type="hidden" name="data[DeliveryPlan][order_keiyaku_date]" value="2015-11-14" id="DeliveryPlanOrderKeiyakuDate"></div>
- <script>
- var detailArr = [];
- <?php
- foreach ($data["SampleDetail"] as $key => $val) {
- ?>
- detailArr[<?php echo h($key); ?>] = <?php echo h($key); ?>;
- <?php
- }
- ?>
- $(function () {
- // 数量入力
- $("[id$='Num']").change(function () {
- // 計算
- calcDetail();
- });
- // 計算
- calcDetail();
- });
- function calcDetail() {
- var num_total = 0;
- var num = 0;
- // 全項目の計算
- $.each(detailArr, function (key, str) {
- if (key != 0) {
- num = formatNum($("#SampleDetail" + str + "Num").val());
- num_total = num_total + num;
- }
- });
- $("#SampleDetailTotalNum").val(num_total);
- }
- // 数値変換
- function formatNum(val) {
- if (val == '') {
- return parseInt(0);
- }
- val = String(val);
- if (!val.match(/^-?[0-9.]+$/)) {
- val = 0;
- }
- val = parseInt(val);
- return val;
- }
- </script>
- </form>
- <!-- contents -->
- </div>
- <!-- InstanceEndEditable -->