PHP if…else,if echo未注册

PHP if…else,if echo未注册,php,Php,我正在尝试使用if…else和“yes”“no”单选按钮。但出于某种原因,无论选择“是”或“否”,都会出现“如果”代码被忽略,并且“您的报价将发送到提供的邮政编码”。我哪里出错了 <?php $delivery = 'unchecked'; $delivery = 'delivery'; if ($delivery == 'no') { echo "Collection from bottleneck, littlebeck!"; } else { echo "Your

我正在尝试使用if…else和“yes”“no”单选按钮。但出于某种原因,无论选择“是”或“否”,都会出现“如果”代码被忽略,并且“您的报价将发送到提供的邮政编码”。我哪里出错了

<?php
$delivery = 'unchecked';

$delivery = 'delivery';

if ($delivery == 'no') {

  echo "Collection from bottleneck, littlebeck!";

} else {

  echo "Your quote will include the delivery to the postcode you provided";

}

// creating cover for all unchecked 

if (isset($_POST['delivery'])) {
  $delivery = $_POST['delivery'];

  if ($delivery == 'Delivery') {
    $delivery = 'checked';
  }
}

// creating 'insert' statement 
$sql = "INSERT INTO cupcake(delivery, additionalInformation, postcode ) VALUES          ('$delivery', '$additionalInformation', '$postcode')";
if (!mysql_query($sql)) 
{
  die('Error:' .mysql_error ());
}


mysql_close();
?>
…而第二个回音“包括发送到您的邮政编码”出现了。

您有

$delivery = 'delivery';

if ($delivery == 'no')

所以$delivery始终是字符串delivery,而不是字符串no,所以它总是转到else。

您需要获取所选收音机的值并将其放入delivery变量中,或者直接使用它来检查isSelected与否

正如dave指出的,您的if语句是错误的。但要回答您关于复选框的问题,如果您有如下复选框:

<input type="checkbox" name="delivery" value="deliver!" />
如果是帖子,或者:

if(isset($_GET['delivery']))

如果是GET。

我看不出$delivery将被分配到哪里的“no”-因此总是返回“else”

我建议尝试更明确的变量名,不要重复使用它们。还要记住php中代码的执行顺序。

Id更改此选项

$delivery = 'unchecked';



$delivery = 'delivery';

if ($delivery == 'no') {

echo "Collection from bottleneck, littlebeck!";

} else {

echo "Your quote will include the delivery to the postcode you provided";


}

// creating cover for all unchecked 

if (isset($_POST['delivery'])) {
$delivery = $_POST['delivery'];

if ($delivery == 'Delivery') {
$delivery = 'checked';
}
}
像这样的事情

<?php
$checked = false;
$delivery = isset($_POST['delivery']) ? $_POST['delivery'] : false;

if (!$delivery) {
    echo "Collection from bottleneck, littlebeck!";
}else if($delivery == 'Delivery'){ //make sure casing is right ( delivery is not equal to Delivery - this is why i suggest using boolean below, or numbers even text can be more complicated to check )
    $checked = true;
} else {
// do we want it checked or do we want it delivered -- not sure from your code but this might be redundant with the above elseif 
    echo "Your quote will include the delivery to the postcode you provided";
}

// creating cover for all unchecked


if ($checked) {
    //do some stuff
}
说明:不要害怕使用更多变量。尽可能使用布尔值true和false。将初始化、默认和分配部分与逻辑、决策部分与结果部分输出等分开。然后它会像诗一样流动。尽管这并不总是可能的,但要时刻牢记在心

初始化 决定
执行

感谢大家提供的有用反馈。我想我现在明白我错在哪里了!迫不及待地想尝试一下你今晚建议的这些东西,第一次我会有机会不幸的是英国时间将发布一条关于所发生事情的反馈:

好的,我得到了它来做我想做的事情,以防有人发现它有用,但要小心,即使有了上述有用的反馈,我仍然在黑暗中摸索,如果复制,请小心操作

.html表格

    <form method="post" action="postcode.php">
    <p>Will You Require Delivery? <p>Yes<input type="radio" name="delivery"  value="yes"/>      <p>No<input type="radio" name="delivery" value="no"/></p>

    <br/>

    </form>

也许OP对PHP有一个非常基本的了解,而对字符串的误解与此无关。。还记得代码的执行顺序吗?php在编译时读取文件,然后在运行时执行。无条件函数声明是在编译时读取的,因此在执行代码时函数已经是已知的。给我们或意大利面代码mantle,它列在文档中-函数在引用之前不需要定义,除非函数是有条件定义的,如下面两个示例所示。但是你不应该在没有额外输入的情况下分配变量,然后再将变量重新分配给多个字符串。我认为在这篇文章中,更重要的是展示流程并给出一些简单的提示,错误确实很小,但代码结构很乱。一旦这被清理干净,你就可以很容易地看到逻辑问题。谢谢,这是我无法理解的,但我会研究为什么这是一个更好的方法!坚持下去这些都是很小的错误,你已经走上了正确的道路,来这里寻求帮助。谢谢,戴夫。我尝试添加$noDelivery,但使用额外的名称时,yes和no的“或”属性被禁用,因为如果需要,您可以同时选择这两个属性?除此之外,我仍然有和以前一样的问题,直接转到其他地方。如果有机会,你能给我举一个If…else的例子吗?对于“是/否”收音机?我在下面发布了我的解决方案,但尽管它起到了作用,但我怀疑它不太值钱?非常感谢。
    <form method="post" action="postcode.php">
    <p>Will You Require Delivery? <p>Yes<input type="radio" name="delivery"  value="yes"/>      <p>No<input type="radio" name="delivery" value="no"/></p>

    <br/>

    </form>
    // below enterubg values from the form

    // this is the new piece of code that IS WORKING :)))

    if ($_POST['delivery'] == "yes")
    {
    echo "Thank you. Your quote will include the delivery charge to the postcode you    provided";  
    }
    else if ($_POST['delivery'] == "no")
    {
    echo "Thank you, pick up from little beck humperding-dong!";
    }


    /* my previous  code that wasn't working :(((( 

    $delivery = 'unchecked';



    $delivery = 'Delivery';


    if ($delivery == 'Delivery') {

    echo "Your quote will include the delivery to the postcode you provided";

    } else {

    echo "Collection from bottleneck, little beck!";


    }
    */

    // creating cover if unchecked 

   if (isset($_POST['delivery'])) {
   $delivery = $_POST['delivery'];

   if ($delivery == 'Delivery') {
   $delivery = 'checked';
   }
   }



   // creating 'insert' statement 
   $sql = "INSERT INTO cupcake(delivery) VALUES     ('$delivery')";
   if (!mysql_query($sql)) 
   {
   die('Error:' .mysql_error ());
   }


   mysql_close();
   ?>