2016-09-18 14 views
0

私はワードプレスではかなり初心者ですし、単純なフォームレイアウト/投稿を扱うのにいくつかの困難を抱えています。次のコードを保持している 私は(WP-adminのページから作成された)のページを持っている:ここワードプレスでウェブフォームを投稿する

<div class="container-fluid"> 
    <form class="form-horizontal" action="" method="POST" > 
     <div class="row form-group"> 
      <div class="col-xs-12"> 
       <label for="name">Nome</label> 
       <input type="text" class="form-control" id="name" name="name" /> 
      </div> 
     </div> 
     <div class="row form-group"> 
      <div class="col-xs-12"> 
       <label for="residence">Residência</label> 
       <input type="text" name="residence" id="residence" /> 
      </div> 
     </div> 
     <div class="row form-group"> 
      <div class="col-sm-6"> 
       <input class="btn btn-default" type="submit" value="Registar"> 
      </div> 
     </div> 
    <form> 
</div> 

私の問題は、私はaction属性に入れ、どのようにフォームを処理するのか分からないということですその後。私は、テンプレートフォルダにPHPファイルを作成しようとし、アクションに入れてみましたが、まったく動作しませんでした。 私はfunctions.phpに追加できるいくつかのアクションも見てきましたが、私はその問題に対する最善の解決策としては見ません。私が望むのは、フォームを送信し、それをメタデータとしてデータベースに格納し、ユーザーをメインページにリダイレクトすることだけです。

答えて

1

提案するaction="#"は、submitを押すと現在のページにリダイレクトされます。フォームを表示しない隠しフィールドをチェックして、データをチェックしてデータベースに保存し、ユーザーをメインページにリダイレクトすることができます。

このファイルは、Wordpressインストールのどこにでも置くことができます(ユーザーがアクセスできる限り)。移植性が問題ではない場合は、ルートに貼り付けるか、可搬性が問題であればmaking a page template fileを参照してください。

また、あなたのWordpressページの処理を邪魔するので、私は覚えているようだ(Wordpressはそれがどのページにあるのかを識別するために使用する)ので、name="name"という属性を注意して使用してください。

は、ここで同じページの取り扱いの例です:

<?php 
if (isset($_POST["formSubmitted"])) { 
    $name = $_POST["formName"]; 
    $residence = $_POST["formResidence"]; 
    // do database work here with $name and $residence 
    // then output javascript to redirect to main page 
    echo '<script>window.location = "http://example.com";</script>'; 
} else { 
    // we display the form 
?> 
<div class="container-fluid"> 
    <form class="form-horizontal" action="#" method="POST" > 
     <div class="row form-group"> 
      <div class="col-xs-12"> 
       <label for="name">Nome</label> 
       <input type="text" class="form-control" id="name" name="formName" /> 
      </div> 
     </div> 
     <div class="row form-group"> 
      <div class="col-xs-12"> 
       <label for="residence">Residência</label> 
       <input type="text" name="formResidence" id="residence" /> 
      </div> 
     </div> 
     <div class="row form-group"> 
      <div class="col-sm-6"> 
       <input class="btn btn-default" type="submit" value="Registar"> 
      </div> 
     </div> 
    <input type="hidden" name="formSubmitted" value="1"> 
    </form> 
</div> 
<?php 
} 
?> 

代替ソリューションがテーマのスタイルシートが置かれているディレクトリを返しget_stylesheet_directory_uri()を使用することができます。

<form action="<?php echo get_stylesheet_directory_uri()."/some_php_file.php"; ?>" method="POST"> 

これはデータをそのファイルに追加してデータベースに追加することができます。

関連する問題