【问题标题】:if statements on an array [closed]数组上的 if 语句 [关闭]
【发布时间】:2019-10-08 12:10:28
【问题描述】:

我正在尝试根据前一个表单的选择来显示表单数据。所以基本上以前的数据是在 $_POST 数组的基础上收集的,原始表单使用 js 复制自己,数据作为数组发送但是在下一页我试图根据以前的答案显示额外的表单字段,这让我疯狂我正在努力工作

<form method="POST" action="index.php?page=newentry3" id="animaldetails" enctype="multipart/form-data" class="meetandgreet" >

    <div id="container">
        <label for="animalname" class="label">Name</label>
        <input type="text" name="animalsname[]" class="input" /><br><br>

        <label for="type" class="label">Type</label>
        <select name="type[]" id="type[]" class="custom-select">
            <option value="">Select</option>
            <option value="Horse">Horse</option>
            <option value="Dog">Dog</option>
            <option value="Cat">Cat</option>
            <option value="Bird">Bird</option>
            <option value="Rodent">Rodent</option>
            <option value="Reptile">Reptile</option>
        </select>
        <br><br>
        <label for="breed" class="label">Breed</label>
        <input type="text" name="breed[]" class="input" />
        <br><br>
        <label for="age" class="label">Age</label>
        <input type="text" name="age[]" class="input" />
        <br><br>
        <label for="medication" class="label">Medication</label>
        <input type="text" name="medication[]" class="input" />
        <br><br>
        <label for="Tendancies" class="label">Tendancies</label>
        <textarea name="tendancies[]" class="input" > </textarea>
        <br><br>         
        <label for="treat" class="label">Treats Allowed </label>
        <select name="treats[]" class="custom-select">
            <option value="">Select</option>
            <option value="yes">Yes</option>
            <option value="no">No</option>
        </select>
        <br><br>
        <label for="feed" class="label2">What To Feed:</label>
        <ul style="list-style-type:none" >
            <label for="hidden" class="label">Feed 1</label>
            <li><input type="text" name="feed1[]" class="input" /></li>
            <label for="hidden" class="label">Feed 2</label>
            <li><input type="text" name="feed2[]" class="input" /></li>
            <label for="hidden" class="label">Feed 3</label>
            <li><input type="text" name="feed3[]" class="input" /></li>
            <label for="hidden" class="label">Feed 4</label>
            <li><input type="text" name="feed4[]" class="input" /></li>
            <label for="hidden" class="label">Feed 5</label>
            <li><input type="text" name="feed5[]" class="input" /></li>
        </ul><br><br>
        <label for="timesday" class="label">How Many Times A Day</label>
        <select name="timesaday[]" class="custom-select">
            <option value="">Select</option>
            <option value="Once">Once</option>
            <option value="Twice">Twice</option>
        </select><br><br>
        <input type="hidden" value="<?php echo $name ;?>" name="name" />
        <input type="hidden" value="<?php echo $lastname;?>" name="lastname" />          
        <input type="hidden" value="<?php echo $terms; ?>" name="terms" />
        <input type="hidden" value="<?php echo $number; ?>" name="number" />                 
        <a href="#" id="add"><img src="images/Add.png"</a>     
        <br/>  

if ($_POST['type']) == 'Horse') {
    echo   "<label for='farrier' class='label'> Farrier Name</label>
            <input type='text' name='farriersname' class='input' /><br>
            <br>         
            <label for='farrier' class='label'> Farriers Telephone</label>  
            <input type='text' name='farriertelephone' class='input'/><br>";
} else {
    echo "0 results";
}

我已经尝试了很多不同的技术,在这个网站上搜索了一些可能有效的东西,但似乎没有任何效果。我会公开承认我并不完全理解数组以及如何从中产生结果。但是,您在上面看到的只是我开始使用的代码,然后我才意识到它是导致问题的数组

【问题讨论】:

  • if ($_POST['type']) == 'Horse') 是语法错误。
  • 你想做什么?明确您的要求
  • 在选择元素上使用name="type[]",您会在$_POST['type'] 中获得一个array - 因此将其与字符串值进行比较是没有意义的。由于您在所有表单字段名称上都使用“数组语法”,我希望首先在这里看到某种 循环,否则这首先没有什么意义。
  • 你可以克隆 div。试试看!
  • $_POST['type'] 基本上持有一个数组。因此,您正在尝试将数组与字符串进行比较。那是行不通的。

标签: php arrays forms


【解决方案1】:

像这样更改你的代码

if($_POST['type'][0]=='Horse'){
    echo "Some code; 
}

【讨论】:

  • 但是OP想知道类型是否为Horse :)
  • 只需将 Dog 改为 Horse; dog 有 3 个字母,而 horse 有 5 个字母,所以因为我很懒,所以我选择 dog :‑D
  • 就这么简单,嗯,也许我应该研究更多
猜你喜欢
  • 1970-01-01
  • 2014-05-05
  • 2017-09-05
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 2014-10-21
  • 1970-01-01
相关资源
最近更新 更多