0

HTML

<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>

PHP

$customerNum = unserialize($_POST['custnum']);
$meterNumbers = unserialize($_POST['meternum']);
$remCreditArray = unserialize($_POST['remcred']);
$dateArray = unserialize($_POST['visitdate']);
$technician = ($_POST['technician']); 

我尝试了多种将这些数组发布到 php 页面的方法,但页面一直告诉我, 和custnummeternum未定义的。remcredvisitdate

我尝试使用表单操作和发布,我尝试使用一段 javascript,但我一直遇到同样的问题,为什么不发布?

我也尝试过在 php 页面上使用$_GET而不是$_POST无济于事。

4

5 回答 5

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将图像添加到其中。

于 2013-10-17T10:10:34.730 回答
0

为什么不直接使用表单提交按钮,而不是使用 javascript 让生活变得复杂?但首先.. 调试,检查隐藏输入中的实际内容。

更好的做法可能是将所有这些详细信息保存在名为维护的表中的服务器上,并且只将记录 ID 传递给网页。用户可以篡改的信息要少得多。

此外,您可以只使用正则 Web 链接来链接以使用 url 中的变量加载下一页(读取GET),除非用户有一些输入需要表单,而我们没有看到。

于 2013-10-17T10:13:39.360 回答
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();">
于 2013-10-17T10:16:23.043 回答
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>

只需替换为输入类型提交,或者您可以使用类型图像并将操作 URL 添加到表单的操作标记,然后您将通过 post 方法获取值,如下面的 exa

于 2013-10-17T10:19:17.643 回答
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>

如果您点击“提交”,您将看到您的浏览器将href在您的 JavaScript 代码有机会向该 URL 发出 POST 请求之前打开该actionURL。

您可能会想要其中之一:

<!-- 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 序列化,请注意对象注入

于 2013-10-17T10:59:33.783 回答