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']); 

custnumこれらの配列を php ページに投稿するさまざまな方法を試しましたが、ページは、meternumremcredおよびvisitdateが未定義であると言い続けます。

フォーム アクションと投稿を使用しようとしましたが、javascript を使用しようとしましたが、同じ問題が発生し続けます。なぜこれが投稿されないのですか?

また、phpページ$_GETの代わりに使用しようとしましたが、役に立ちませんでした。$_POST

4

5 に答える 5

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を追加すると、以下のexaのようなpostメソッドで値を取得できます

于 2013-10-17T10:19:17.643 に答える
0

javascript で生活を複雑にするのではなく、フォームの送信ボタンを使用してみませんか? しかし、最初に..デバッグして、隠し入力に実際に何があるかを確認してください。

サーバー上のこれらすべての詳細をメンテナンスと呼ばれるテーブルに保持し、レコード ID のみを Web ページに渡す方がよいでしょう。ユーザーが改ざんできる情報が大幅に少なくなります。

また、表示されないフォームを必要とするユーザーからの入力がない限り、通常の weblink を使用して、URL の変数を使用して次のページをロードすることもできます ( GETを読み取ります)。

于 2013-10-17T10:13:39.360 に答える
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 要求を行う前に、ブラウザーが URL を開くことがわかり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 シリアライゼーションを使用する場合は、オブジェクト インジェクションに注意してください。

于 2013-10-17T10:59:33.783 に答える