2016-07-06 11 views
0

私は何時間も検索しましたが、これについての回答は実際には見つかりませんでした。ブートストラップ3形式とphp - 電子メールメッセージの同じ行に複数の入力があります

私がしたいのは、大きなフィールドと小さなフィールドの隣にあります。別の住所や電話番号(Blackstreet 27や123 - 456789など)を入力してください。メールボックスで受け取ったメッセージに1つの名前として印刷する必要があります。 Webページ上ではすべてが2つまたは複数のフィールドになりますが、最終的な結果は表示されません。同じ名前またはIDが機能しません。

<div class="row"> 
    <div class="col-xs-6"> 
    <div class="form-group"> 
     <label for="form_area">Area code *</label> 
     <input id="form_area" maxlength="4" type="tel" name="area" class="form-control" placeholder="Area code required *" required="required" data-error="Your area code is required."> 
     <div class="help-block with-errors"></div> 
    </div> 
    </div> 
    <div class="col-xs-6"> 
    <div class="form-group"> 
     <label for="form_phone">Phone number *</label> 
     <input id="form_phone" type="tel" pattern="^[_0-9]{1,}$" name="phone" class="form-control" placeholder="Phone number required *" required="required" placeholder="Your phone number is required."> 
     <div class="help-block with-errors"></div> 
     </div> 
    </div> 
</div> 

EDIT:申し訳ありません。私はそれがPHPファイルと関係があると思う。 \ nはそれをすべて破壊するものです。私はそれを削除すると、それはすべて1行に来て、一部のフィールドだけが1行に来る必要があります。

コード:

<?php 

// configure 
$from = 'emailadres'; 
$sendTo = 'emailadres'; 
$subject = 'New message from contact form'; 
$fields = array('name' => 'Name', 'businessname' => 'Businessname', 'phone' => 'Phonenumber', 'email' => 'Email', 'message' => 'Message'); // array variable name => Text to appear in email 
$okMessage = 'I'll contact you asap!'; 
$errorMessage = 'Something went wrong. try again later'; 

// let's do the sending 

try 
{ 
$emailText = "You have new message from contact form\n=============================\n"; 

foreach ($_POST as $key => $value) { 

    if (isset($fields[$key])) { 
     $emailText .= "$fields[$key]: $value\n"; 
    } 
} 

mail($sendTo, $subject, $emailText, "From: " . $from); 

$responseArray = array('type' => 'success', 'message' => $okMessage); 
} 
catch (\Exception $e) 
{ 
$responseArray = array('type' => 'danger', 'message' => $errorMessage); 
} 

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
$encoded = json_encode($responseArray); 

header('Content-Type: application/json'); 

echo $encoded; 
} 
else { 
echo $responseArray['message']; 
} 

?> 
+0

残念ながら私はまだそれを理解していないので、これを手伝ってくれる人はいますか? – Jorus

答えて

0

私は最終的に答えを得ました! (スクリプトの作者Ondrejに感謝します)。

この部分は交換しなければならなかった。このため

foreach ($_POST as $key => $value) { 

if (isset($fields[$key])) { 
    $emailText .= "$fields[$key]: $value\n"; 
} 
} 

$emailText .= "Name: " . $_POST['name']. "\n"; 
$emailText .= "Businessname: " . $_POST['businessname']. "\n"; 
$emailText .= "Address: " . $_POST['street']." ". $_POST['number']. "\n"; 
$emailText .= "Phonenumber: " . $_POST['phone']. "\n"; 
$emailText .= "E-mail: " . $_POST['email']. "\n"; 
$emailText .= "Message: " . $_POST['message']. "\n"; 

そして、この行は、configureの一部を除去することができる。

$fields = array('name' => 'Name', 'businessname' => 'Businessname', 'phone' => 'Phonenumber', 'email' => 'Email', 'message' => 'Message'); // array variable name => Text to appear in email 

だから、完全なPHPファイルは次のようになります:

<?php 

// configure 
$from = 'emailadres'; 
$sendTo = 'emailadres'; 
$subject = 'New message from contact form'; 
$okMessage = 'I'll contact you asap!'; 
$errorMessage = 'Something went wrong. try again later'; 

// let's do the sending 

try 
{ 
$emailText = "You have new message from contact form\n=============================\n"; 

$emailText .= "Name: " . $_POST['name']. "\n"; 
$emailText .= "Businessname: " . $_POST['businessname']. "\n"; 
$emailText .= "Address: " . $_POST['street']." ". $_POST['number']. "\n"; 
$emailText .= "Phonenumber: " . $_POST['phone']. "\n"; 
$emailText .= "E-mail: " . $_POST['email']. "\n"; 
$emailText .= "Message: " . $_POST['message']. "\n"; 

mail($sendTo, $subject, $emailText, "From: " . $from); 

$responseArray = array('type' => 'success', 'message' => $okMessage); 
} 
catch (\Exception $e) 
{ 
$responseArray = array('type' => 'danger', 'message' => $errorMessage); 
} 

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
$encoded = json_encode($responseArray); 

header('Content-Type: application/json'); 

echo $encoded; 
} 
else { 
echo $responseArray['message']; 
} 

?> 
0

たぶん代わりにCOL-XS-5のあなたはCOL-XS-2を書くことができます。または、入力フィールド幅を書き込みます。また、http://bootsnipp.com/には、何十もの作業用のブートストラップスニペットがあります。

+0

まあ、col-xsは、形式imoの結果と関係がありません。だから私は2つのフィールドがいっぱいになると、それは私のメールボックスに休憩をもたらします。 – Jorus

0

残念ながら、私の問題は解決されていません。

foreach ($_POST as $key => $value) { 

if (isset($fields[$key])) { 
    $emailText .= "$fields[$key]: $name $businessname\n"; 
        "$fields[$key]: $phonenumber\n"; 
        "$fields[$key]: $email\n"; 
    } 
} 

だから、どの値の後に値を書いて、どの値の後ではないのかを教えてください。

私の古いphpmailerフォームをブートストラップとajaxフォームと組み合わせるのは簡単ですが、不慣れな人には固定されています。

関連する問題