私はこの機能を持っていますUtils.php
function GenerateMonthlyReport($connection, $month, $year, $objSheet)
{
$months = array("Enero", "Febero", "Marzo", "Abril", "Mayo", "Junio" ,"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
$fromDate = $year . "-" . $month . "-01";
$toDate = "";
if ($month != 12)
$toDate = $year . "-" . ($month+1) . "-01";
else
$toDate = ($year+1) . "-01-01";
etc..
}
次に、別のファイルで、このようなパラメーターcreateReport.php
を使用してこの関数を呼び出します$_POST
include "Utils.php";
include "Connect.php";
require_once('PHPExcel/Classes/PHPExcel.php');
checkLogin();
// Connect to Db
$connection = openDb();
// Input Data
$month = mysqli_real_escape_string($connection, $_POST["month"]);
$year = mysqli_real_escape_string($connection, $_POST["year"]);
$objPHPExcel = CreateEmptyWorkbook();
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); // create the writer
$objSheet = $objPHPExcel->getActiveSheet();
GenerateMonthlyReport($connection, $month, $year, $objSheet);
問題: パラメータ$year
と$month
、GenerateMonthlyReport 関数に渡すパラメータが関数null
内にあります。
しかし、私がこのようなことをすると:
GenerateMonthlyReport($connection, "3", "2013", $objSheet);
それらは正しく渡されます。
$year
と変数のエコーを行うと$month
、値が表示されます!!
また、この奇妙な動作は、モバイル デバイスからフォームを送信した場合にのみ発生します。PCブラウザからは発生しません。
編集: フォームの HTML コードは次のとおりです。
<form id="reportForm" action="/service/createMonthlyReport.php" method="post">
<table border="1">
<tr>
<td>
Seleccione Período
</td>
<td>
<label>Mes</label><br/>
<select id="monthM" name="month" >
<?php for ($i=1; $i<=12; $i++) :?>
<option value="<?php echo $i; ?>" <?php echo date("n") != $i ? "" : "selected" ?>>
<?php echo $monthName = date("M", mktime(0, 0, 0, $i, 10)); ?>
</option>
<?php endfor; ?>
</select>
</td>
<td>
<label>Anio</label><br/>
<select id="yearM" name="year" >
<?php for ($i=-5; $i<=5; $i++) :?>
<?php $yearData = (date("Y") + $i); ?>
<option value="<?php echo $yearData; ?>" <?php echo date("Y") != $yearData ? "" : "selected" ?>>
<?php echo $yearData; ?>
</option>
<?php endfor; ?>
</select>
</td>
<td>
<input type="submit" value="Descargar Reporte Mensual" id="submitBtn" class="crearBtn" />
</td>
</tr>
</table>
</form>
openDB コード:
function openDb() {
$sever = "myserver";
$database_name = "dbname";
$user = "user";
$pass = "mypass";
$connection = new mysqli($server, $user, $pass, $database_name) or die("DB connection failed!");;
$connection->set_charset("utf8");
mysqli_query($connection, 'SET NAMES utf8');
mysqli_query($connection, 'SET CHARACTER SET utf8');
return $connection;
}