<link rel="stylesheet" type="text/css" href="<?php echo CSS_URL ?>modal.css" />
<form id="postinfo" action="" method="POST">
<input type="hidden" name="technician" value="<?php echo $technician; ?>">
<input type="hidden" name="custnum" value="<?php echo htmlentities(serialize($customerNum)); ?>">
<input type="hidden" name="meternum" value="<?php echo htmlentities(serialize($meterNumbers)); ?>">
<input type="hidden" name="remcred" value="<?php echo htmlentities(serialize($remCreditArray)); ?>">
<input type="hidden" name="visitdate" value="<?php echo htmlentities(serialize($dateArray)); ?>">
<a href ="<?php echo PROCESS_URL; ?>create_maint_token_excel.php" onclick="document.getElementById('postinfo').submit();">
<img src="<?php echo IMAGE_URL ?>Excel.png" name="Print Excel" title="Print Excel" alt="Print Excel" /></a>
</form>
$customerNum = unserialize($_POST['custnum']);
$meterNumbers = unserialize($_POST['meternum']);
$remCreditArray = unserialize($_POST['remcred']);
$dateArray = unserialize($_POST['visitdate']);
$technician = ($_POST['technician']);
我已尝试过将这些数组发布到php页面的多种方法,但该页面一直告诉我custnum
,meternum
,remcred
和visitdate
未定义。< / p>
我尝试过使用表单操作和帖子,我尝试使用一段javascript而且我一直遇到同样的问题,为什么不发布?
我也尝试在php页面上使用$_GET
代替$_POST
无效。
答案 0 :(得分:2)
<a href ="<?php echo PROCESS_URL; ?>create_maint_token_excel.php" onclick="document.getElementById('postinfo').submit();">
这不起作用,提交将进入必杀技,你将被带到没有变量的PHP页面。您正在同时执行两个请求,您的浏览器将转到没有表单变量的请求。
尝试将表单更改为:
<form id="postinfo" action="<?php echo PROCESS_URL; ?>create_maint_token_excel.php" method="POST">
您的链接:
<a href ="#" onclick="document.getElementById('postinfo').submit();">
这应该正确提交表格而不关注链接。
或者使用propper <input type="submit" />
按钮,您可以使用CSS将图像添加到其中。
答案 1 :(得分:0)
为什么不使用表单提交按钮,而不是使用javascript让生活抱怨?但首先..调试,检查隐藏输入中的实际内容。
最好将所有这些细节保存在名为maintenance的表中,并且只将记录ID传递给网页。用户可以篡改的信息少得多。
此外,您可以使用规则网络链接链接以使用网址中的变量加载下一页(阅读GET),除非用户需要表格的某些输入,我们这样做不看。
答案 2 :(得分:0)
你应该尝试,
<?php foreach ($customerNum as $item): ?>
<input type="hidden" name="custnum[]" value="<?php echo $item; ?>"/>
<?php endforeach ?>
在php
中你可以得到,
$customerNum = $_POST['custnum'];
使用,
<a href ="javascript:void(0)" onclick="document.getElementById('postinfo').submit();">
答案 3 :(得分:0)
<input type="hidden" name="technician" value="<?php echo $technician; ?>">
<input type="hidden" name="custnum" value="<?php echo htmlentities(serialize($customerNum)); ?>">
<input type="hidden" name="meternum" value="<?php echo htmlentities(serialize($meterNumbers)); ?>">
<input type="hidden" name="remcred" value="<?php echo htmlentities(serialize($remCreditArray)); ?>">
<input type="hidden" name="visitdate" value="<?php echo htmlentities(serialize($dateArray)); ?>">
<a href ="<?php echo PROCESS_URL; ?>create_maint_token_excel.php" onclick="document.getElementById('postinfo').submit();">
<img src="<?php echo IMAGE_URL ?>Excel.png" name="Print Excel" title="Print Excel" alt="Print Excel" /></a>
只需替换为inpuit类型提交,或者您可以使用类型图像并将动作网址添加到表单的动作标记,然后您将通过post方法获取值,如下所示exa
答案 4 :(得分:0)
这是一个简化的测试用例:
<form id="postinfo" action="" method="post">
<input type="hidden" name="foo" value="1">
<a href="http://www.google.es" onclick="document.getElementById('postinfo').submit();">Submit</a>
</form>
如果您点击“提交”,您会看到您的浏览器会在您的JavaScript代码有机会向href
网址发出POST请求之前打开action
网址。
你可能想要其中一个:
<!-- No action href -->
<a href="javascript:;" onclick="document.getElementById('postinfo').submit();">Submit</a>
<!-- Cancel click event -->
<a href="http://www.google.es" onclick="document.getElementById('postinfo').submit(); return false;">Submit</a>
<!-- No link at all -->
<div onclick="document.getElementById('postinfo').submit();">Submit</div>
附注:如果您使用PHP序列化,请注意object injection。