2012-02-29 9 views
0

私は状況に遭遇しました。私はこれに新しいですが、私は、ブラウザのユーザー側のphp対のサーバー側の領域を理解しています..私はちょうど私がやりたいことを達成する方法を知りません..HTMLフォームをSQL DBに挿入し、ページに投稿されたvarsも渡します

私はページにフォームがありますユーザーは学校のコースに登録することができます。コースタイプ、場所、日付、お支払い方法を選択します。 送信時には、アウトソースされたショッピングカートに行き、支払明細を入力して、商品説明、価格などを入力します。これには、店舗IDやその他の関連情報が含まれます。 また、PHPデータベースの一部をユーザデータベースに挿入する必要があります。

DBアクションを別のPHPページに移動して、カートにリダイレクトするようにしましたが、カートに入ると、情報が正しく送信されなかったというエラーが生成されましたが、DBエントリ成功しました。

また、cartリンクでフォームアクションにインクルード(dbentry.php)を使用してみました。これは、ページの読み込み時にサーバー側エラーを生成します。

ある時点で、dbエントリ(ブランクであったにも関わらず)を作成してそこにあるすべてのvarsを含むカートに​​リダイレクトすることに成功しましたが、空のDBエントリは役に立ちません。私はエントリーが$ POST varsが作成される前に起こったと仮定しています...私もそれをやり直していないことを覚えていません。 HTMLフォームに記入し、提出されたときに$ POST varsでDBエントリを実行し、$ POST varsをカートページに直接渡しますか?通常、私は次のページでdbentry.phpを実行しますが、アウトソーシングされたカートページのスクリプトにはアクセスできません。

+0

あなたの答えは次のとおりです。私はそれを行うだろう正確にどのように - http://stackoverflow.com/questions/5576619/php-redirect-with-post-data –

答えて

0

フォームの値を保持するために、隠しテキストボックスを使用できます。そしてこの値は別のPHPページからアクセスできます

+1

フォームのほとんどは隠されたテキストフィールドです。赤いフィールドと8つの隠しフィールドがあります。 – Chris

+0

申し訳ありません。フォームのほとんどは、隠されたテキストフィールドです。4つのユーザー入力フィールドと8つの非表示フィールドがあります。私は$ _POST varsを取​​り出し、それらをきれいにしてローカルのvarに変換しました(例:$ name = clean(_ $ POST ['name']);)名前 '] = $名前;)しかし、私はカートのページでエラーを取得します..私は直接それに直接投稿する場合、カートは値をrcognizes。私はまた、PHPのインクルードを、自分のカート内のカスタマイズ可能なヘッダーコード領域に入れて、成功したdbentry.phpへの直接のhttpパスを入れてみました。私はそこから$ _POST varをエコーすることもできません。 – Chris

+0

@ user1226911 4を使うことができますか? – sameer

0

変数をpage1.phpからpage2.phpに委託されたカートに渡す必要があります。その後、POSTデータを読み込みます

  • Page2.phpをpage2.phpするPOSTを使用して、元のフォームデータを送信

    1. を:以下のコードが何をしているのか

      :私は次のような何かをするだろう(データベースに保存するかどうかなど、このデータを使って必要なことを行うことができます)。 Javascriptスニペットは、フォーム内の隠しフィールドとして保存されている必要なPOST変数を使用して、チェックアウトカートページ(page3.php)にフォームを送信します。

    Page1.php

    <form action="page2.php"> 
    <input type="text" name="myfield1"/> 
    <input type="text" name="myfield2"/> 
    <input type="text" name="myfield3"/> 
    <input type="hidden" name="myfield4"/> 
    <input type="hidden" name="myfield5"/> 
    <input type="hidden" name="myfield6"/> 
    <input type="hidden" name="myfield7"/> 
    <input type="hidden" name="myfield8"/> 
    </form> 
    

    page2.phpここ

     <?php 
        if(isset($_POST['myfield1'])) 
        { 
        $myfield1 = $_POST['myfield1']; 
        } 
    
    // do the above for all of the fields, use the data to query database with. 
    
    // Perform database operations here 
    
    ?> 
    
    <form action='Page3.php' method='post' name='frm'> 
    <?php 
    foreach ($_POST as $a => $b) { 
    echo "<input type='hidden' name='".$a."' value='".$b."'>"; 
    } 
    ?> 
    </form> 
    
    <!-- Script to submit button --> 
    
    <script language="JavaScript"> 
    document.frm.submit(); 
    </script> 
    
  • +0

    お支払い期限: http://www.stackoverflow.com/questions/5576619/php-redirect-with-post-data –

    +0

    ありがとうございます!これで私はSOOOOOを近づけました!私はおそらく間違ったことをした。 DBのデータを入力して、page2.phpの白い画面にぶら下がっていただけでした。< script >セクションが< head >セクションではなく、どこに置かれているのか分かりました。カートに入れられているが、DBには何も入力されていない。最初のシナリオと2番目のシナリオの間に何がないのだろうか? – Chris

    +0

    これはすでに基本的にそこに.. if-issetなしで。もしそれが問題であれば、< script >を< head >エリアに移動する前に、適切な情報をデータベースに入れていないでしょうか?それはdbエントリを殺すものです。< body >のフォームの下に< script >情報がある場合、dbエントリは動作しますが、フォームは送信されません(フォームは明白な理由で送信されません)。 – Chris

    関連する問題