Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/jQuery Ajax/Sessions仅适用于Android浏览器_Php_Jquery_Ajax_Html - Fatal编程技术网

PHP/jQuery Ajax/Sessions仅适用于Android浏览器

PHP/jQuery Ajax/Sessions仅适用于Android浏览器,php,jquery,ajax,html,Php,Jquery,Ajax,Html,在我的业余项目中,我一直在为几个奇怪的问题而挣扎。这是我的第一个“大”PHP/JS项目,老实说,我是第一次使用ajax,所以我可能只是错过了一些东西 不管怎么说,就是这样。我正在编程一个非常简单的发票系统,使用PHP和jQuery技术以及mPDF库从HTML/CSS生成PDF文件。我主要使用模板中的会话变量,该模板被发送到mPDF以生成PDF发票 我遇到的问题是Android版的Chrome,在最新版本的OnePlus上进行了测试。会话变量未显示在PDF中。我认为它像一次或两次完全随机工作。我的

在我的业余项目中,我一直在为几个奇怪的问题而挣扎。这是我的第一个“大”PHP/JS项目,老实说,我是第一次使用ajax,所以我可能只是错过了一些东西

不管怎么说,就是这样。我正在编程一个非常简单的发票系统,使用PHP和jQuery技术以及mPDF库从HTML/CSS生成PDF文件。我主要使用模板中的会话变量,该模板被发送到mPDF以生成PDF发票

我遇到的问题是Android版的Chrome,在最新版本的OnePlus上进行了测试。会话变量未显示在PDF中。我认为它像一次或两次完全随机工作。我的安卓设备和谷歌浏览器的朋友也证实了同样的问题

test.php

<?php
session_start();
error_reporting(E_ALL);

if (!isset($_SESSION['GLO_IS_LOGGED_IN'])) {
    header("Location: index.php");
    exit;
}

include('libs/mPDF/mpdf.php');

ob_start();
include('protected/templates/template.php');
$data = ob_get_clean();

$mpdf = new mPDF();
$mpdf->WriteHTML($data);
$mpdf->Output('protected/invoices/Faktura ' . date('j-m-Y-H-i-s') . '.pdf');
$mpdf->Output('Faktura ' . date('j-m-Y-H-i-s') . '.pdf', 'D');

unset($_SESSION['VAR_DESCRIPTION_ARRAY']);
unset($_SESSION['VAR_AMOUNT_ARRAY']);
unset($_SESSION['VAR_PRICE_ARRAY']);
unset($_SESSION['VAR_TO_ADDRESS']);
unset($_SESSION['VAR_INVOICE_NUMBER']);
<?php
session_start();
error_reporting(E_ALL);

if (!isset($_SESSION['GLO_IS_LOGGED_IN'])) {
    header("Location: index.php");
    exit;
}

if (!empty($_POST['invoice-number'])) {
    $_SESSION['VAR_INVOICE_NUMBER'] = trim($_POST['invoice-number']);
} else {
    echo('Please add invoice number');
    exit;
}

if (!empty($_POST['to-address'])) {
    $_SESSION['VAR_TO_ADDRESS'] = ($_POST['to-address']);
} else {
    echo('Internal Error');
    exit;
}

$_SESSION['VAR_DESCRIPTION_ARRAY'] = $_POST['invoice-description'];
$_SESSION['VAR_AMOUNT_ARRAY'] = $_POST['invoice-amount'];
$_SESSION['VAR_PRICE_ARRAY'] = $_POST['invoice-price'];

'invoice-form'不包含任何字段-输入标签应该在表单中

好的,各位,我想我已经找到了解决方案

test.php中注释掉所有未设置的方法,解决了Chrome for Android的问题

我不明白为什么会发生这种事。为什么在生成发票之前未设置会话变量?他们不应该这样,对吗?或者我真的错过了什么?我知道我不应该在自己的回答中要求澄清,但我认为现在我真的需要澄清


干杯并感谢IanMcL解决了我的边缘问题

这就是我所做的,理论上它应该工作得很好。原因是表单不能是表的父级。干杯我前面的评论加上简短的补充。我刚刚注意到,有人说这在IE和低于HTML5的任何东西上都不起作用。我会给它一个机会,并提供一个更新。谢谢stackoverflow.com/a/2162209/1796469说表单不能是表的子级,而不能是父级!我的错!我将尝试稍后返回给您更新。这已修复了我与Microsoft Edge的问题。然而,Chrome for Android仍然生成空的PDF(在我输入发票字段的会话变量没有显示的情况下为空)。在Android上与Opera和Firefox配合使用效果良好。干杯