if(isset($ _ POST ['action']))不起作用

时间:2016-03-27 08:08:00

标签: javascript php

我正在尝试回显javascript以查看(isset($ _ POST ['action'))是否返回true。但每次我点击按钮。它没有做任何违背它应该做的事情。似乎是什么原因?

编辑:我包含了整个代码。这里有问题吗?我几乎尝试了所有的建议,但仍然没有工作。

<div class="container">
<form action="" method="post">  

<div class="row">
  <div class="input-field col">
<h5>Patient Details</h5>
<div class="row">
  <div class="input-field col">
    <i class="material-icons prefix">assignment_ind</i>
    <input type="text" name="patientName" class="validate">
    <label for="patientName">Patient Name</label>
</div>

  <div class="input-field col s3">
    <select name="bloodType" required>
      <option value="" disabled selected>Select Blood Group</option>
      <?php
         $q = $db->query("select * from tblbloodtype where btStatus = '1' ORDER by bloodTypeName"); 
        while($r = $q->fetch(PDO::FETCH_ASSOC)){
        echo"<option value=".$r['bloodTypeID'].">".$r['bloodTypeName']."</option>";
         }
        ?>
    </select>
    <label>Blood Group</label>
  </div>

  <div class="input-field col s3">
    <select name="city" required>
      <option value="" disabled selected>Select City</option>
      <?php
         $q = $db->query("select * from tblcity where status = '1' ORDER by cityName"); 
        while($r = $q->fetch(PDO::FETCH_ASSOC)){
        echo"<option value=".$r['cityID'].">".$r['cityName']."</option>";
         }
        ?>
    </select> 
    <label>City where it is needed</label>
  </div>
</div><!--ROW-->

<div class="row">
  <div class="input-field col s12 ">
    <i class="material-icons prefix">business</i>
          <textarea id="hospitalName" class="materialize-textarea"></textarea>
          <label for="hospitalName">Hospital Name and Address</label>
  </div>
</div>

<div class="row">
  <div class="input-field col">
    <i class="material-icons prefix">perm_identity</i>
    <input type="text" name="doctorName" class="validate">
    <label for="doctorName">Doctor's Name</label>
</div>
</div>
<h5>Contact Details</h5>
<div class="row">
<div class="input-field col">
    <i class="material-icons prefix">perm_identity</i>
    <input type="text" name="contactName" pattern="[a-zA-Z0-9']+" class="validate">
    <label for="contactName">Contact Name</label>
</div>

<div class="input-field col">
    <input type="email" name="email"  pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" class="validate">
    <label for="email">Contact Email</label>
</div>

<div class="input-field col">
    <input type="text" name="contactNum" pattern="[0-9+]{7,13}" class="validate">
    <label for="contactNum">Contact Number</label>
</div>
    <input class="btn waves-effect waves-light" type="submit" value="Send Request" name="action">
    </form>
    </div><!--CONTAINER-->

<?php


if(isset($_POST['action'])){
    echo "<script>alert('Success! Redirecting to homepage..');</script>";
    echo "<meta http-equiv='refresh' content='0;url=index.php'>";
}
?>

4 个答案:

答案 0 :(得分:1)

我终于找到了问题,首先感谢您的努力。

正如您在上面的代码中看到的,我在输入标记上添加了required属性。因此,除非我选择有价值的东西,否则我可以成功回应警报。

我花了很长时间才注意到它,因为它没有显示错误消息,我需要选择一些东西。

答案 1 :(得分:0)

更改

$_REQUEST['action ']

$_REQUEST['action']

(注意最后删除的空格)

同时更改

   <script>alert('Success! Redirecting to homepage..);</script>

  <script>alert('Success! Redirecting to homepage..');</script>

(请注意两点后的引用)

只允许在标题部分使用元标记。尝试删除此行:

echo "<meta http-equiv='refresh' content='0;url=index.php'>";

您可以在body部分中使用meta来实现语义目的:

<meta itemprop="ratingValue" content="4" />

并且,如此处所述http://schema.org/docs/gs.html#advanced_missing

  

此技术应该谨慎。仅使用带内容的元数据   无法以其他方式标记的信息。

所以你必须避免这种情况。

编辑:

前3个div没有结束标记。关闭这些div。不关闭它们,<script>标记由标记内的php打印。

同样替换它:

echo"<option value=".$r['bloodTypeID'].">".$r['bloodTypeName']."</option>";

用这个:

echo "<option value='".$r['bloodTypeID']."'>".$r['bloodTypeName']."</option>";

(注意value属性中的单引号)

同样的事情

  echo"<option value=".$r['cityID'].">".$r['cityName']."</option>";

将其替换为:

echo "<option value='".$r['cityID']."'>".$r['cityName']."</option>";

(注意回声之间的空格)

答案 2 :(得分:-1)

if(isset($_POST['action'])){
    echo "<script>alert('Success! Redirecting to homepage..');</script>";
    echo "<meta http-equiv='refresh' content='0;url=index.php'>";
}

删除了$_POST['action']

中的空格

单引号已关闭'Success! Redirecting to homepage..'

在echo echo "<meta http-equiv='refresh' content='0;url=index.php'>";

之后给出的空格

答案 3 :(得分:-2)

$_POST['action ']中的空格移至$_POST['action']