如何在php中使用if / else更改变量的值以获得不同的期望结果?

迈克尔·皮特鲁克(Michael Pitluk)

因此,就像我一直说的那样,我是编码的新手,所以我试图以我所拥有的非常少的专门知识来做。

我的目标是:如果有人选择了喜欢的歌曲,那么我将通过电子邮件将$ fav_song值发送给我自己,并通过确认发送给客户。如果他们没有选择歌曲,那么我不会将任何此类信息发送给我自己或客户。

这是我的联系表格:

            <!--Contact form below-->

            <form action="../php/form_script.php" method="POST">
                <table width="450px">
                    <tr><!-- Name -->
                        <td style="vertical-align: top">
                            <label for="name">Name *</label>
                        </td>
                    </tr>
                    <tr><!-- Name Textbox -->
                        <td style="vertical-align: top">
                            <input  type="text" name="name" maxlength="50" size="30"> 
                            <!--"size" = how many characters long you want it to be-->
                            <!--"maxlength" = maximum number of characters it will accept-->
                        </td>
                    </tr>
                    <tr><!-- Client Email -->
                        <td style="vertical-align: top">
                            <label for="clientEmail">Email Address *</label>
                        </td>
                    </tr>
                    <tr><!-- Client Email Textbox -->
                        <td style="vertical-align: top">
                            <input  type="text" name="clientEmail" maxlength="80" size="30">
                        </td>
                    </tr>
                    <tr><!-- Subject -->
                        <td style="vertical-align: top">
                            <label for="subject">Subject *</label>
                        </td>
                    </tr>
                    <tr><!-- Subject Textbox -->
                        <td style="vertical-align: top">
                            <input  type="text" name="subject" maxlength="30" size="30">
                        </td>
                    </tr>
                    <tr><!-- Favorite Song -->
                        <td style="vertical-align:top">
                            <label for="fav_song">Favorite Song:</label>
                        </td>
                    </tr>
                    <tr><!-- Favorite Song Select -->
                        <td style="vertical-align:top">
                            <select name="fav_song">
                                <option value="none">Choose a Song Below</option>
                                <option value="far-sighted">Far-Sighted</option>
                                <option value="off_the_grid">Off the Grid</option>
                                <option value="nasty_rude">Nasty Rude</option>
                                <option value="inner_peace">Inner Peace</option>
                                <option value="frozen_bones">Frozen Bones</option>
                                <option value="stubborn_heart">Stubborn Heart</option>
                                <option value="dont_be_afraid">Don't Be Afraid</option>
                                <option value="made_you_smile">Made You Smile</option>
                                <option value="godly_palaver">Godly Palaver</option>
                                <option value="catch_you_on_the_flip_side">Catch You on the Flip Side</option>
                                <option value="we_remain">We Remain</option>
                                <option value="bluesless">Bluesless</option>
                            </select>
                        </td>
                    </tr>
                    <tr><!-- Client Message -->
                        <td style="vertical-align:top">
                            <label for="clientMessage">Message *</label>
                        </td>
                    </tr>
                    <tr><!-- Client Message Textarea -->
                        <td style="vertical-align: top">
                            <textarea  name="clientMessage" maxlength=""></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td style="vertical-align: top">
                            <input type="submit" name="submit" value="Submit">
                            <!--"value" is what you see written on the submit button in the browser-->
                        </td>
                    </tr>
                </table>
            </form>

            <!--End Contact Form-->

这是我的php脚本,应该执行我在上面编写的内容:

<?php

$email = "[email protected]";
$name = $_POST['name'];
$clientEmail = $_POST['clientEmail'];
$subject = $_POST['subject'];
$fav_song = $_POST['fav_song'];
$clientMessage = $_POST['clientMessage'];
//if the client doesn't pick a song, I won't receive a $fav_song value in my inbox:
if ($fav_song === "none") {
$message = "Name: " . $name . ", Email: " . $clientEmail . ", Message: " . $clientMessage;
}
//if the client does pick a song, I will receive a $fav_song value in my inbox
if ($fav_song !== "none") {
$message = "Name: " . $name . ", Email: " . $clientEmail . ", Favorite Song: " . $fav_song . ", Message: " . $clientMessage;
}

/*********** Email Script ***********/

mail($email, $subject, $message, "Name: " . $name . "From: " . $clientEmail . "Favorite Song: " . $fav_song);

//if the client doesn't pick a song, I won't confirm a $fav_song value for them
if ($fav_song === "none") {
echo "Your email has been sent: </br>Name: $name</br>Email: $clientEmail</br>Subject: $subject</br>Message: $clientMessage";
}
//if the client does pick a song, I will confirm a $fav_song value for them
if ($fav_song !== "none")
{"Your email has been sent: </br>Name: $name</br>Email: $clientEmail</br>Subject: $subject</br>Song: $fav_song</br>Message: $clientMessage";
}

?>

我也尝试过if / else。但是,在两种情况下,如果都未选择歌曲,则一切正常。但是,选择一首歌曲后,客户的确认为空白(当它应该显示“您的电子邮件已发送...”字符串时)。此外,当选择了一首歌曲(任何一首歌曲),它会告诉我选择(即使它不是),其富有远见的。

那么,我该如何解决呢?无论如何,有没有简化这个烂摊子?

谢谢!

豪尔赫·富恩特斯·冈萨雷斯

在最后一段代码中,您没有添加echo试试这个:

if ($fav_song != "none") {
    echo "Your email has been sent: </br>Name: $name</br>Email: $clientEmail</br>Subject: $subject</br>Song: $fav_song</br>Message: $clientMessage";
}

另外,为了简化使用if/ else

if ($fav_song === "none") {
    echo "Your email has been sent: </br>Name: $name</br>Email: $clientEmail</br>Subject: $subject</br>Message: $clientMessage";
} else {
    echo "Your email has been sent: </br>Name: $name</br>Email: $clientEmail</br>Subject: $subject</br>Song: $fav_song</br>Message: $clientMessage";
}

如果条件相反(与相同$fav_song !== "none"),否则Else将执行其中的代码

为了简化更多操作,您可以执行以下操作:

// This will be always being echoed.
echo "Your email has been sent: </br>Name: $name</br>Email: $clientEmail</br>Subject: $subject</br>";

// Then if the user has selected a song, it will be echoed.
if ($fav_song != "none") {
    echo "Song: $fav_song</br>";
}

// And then will echo the rest of the string.
echo "Message: $clientMessage";

不必担心会在不同的行中破坏回声,它会以完全相同的方式工作,就像将它们串联在一起一样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章