2014-01-28 97 views
4

我正在尝试编写我认为对于我的(快速接近)婚礼来说非常简单的PHP RSVP页面。我专门为这项任务学习PHP,并且一切都很顺利,直到我碰壁。以下是我设想这项工作的高级步骤,以及我目前编写的代码。我真的想在本周完成这个任务,所以任何帮助将不胜感激。简单的PHP回复表格

  1. 用户输入名字和姓氏并点击“搜索”按钮。 Here是窗体外观的图像。下面是表单的HTML。

     <form method = "post" action="rsvp.php"> 
          <span>First Name:</span><input type="text" name="firstName" value="Father"> 
          <span>Last Name </span><input type="text" name="lastName" value="Test"> 
          <input type="submit" name="search_submit" value="Search"> 
         </form> 
    
  2. 在“搜索”按钮上按下,查询数据库。以下是PHP代码。

     if (isset($_POST['search_submit'])) { 
          //Connect to the appropriate database. 
          include 'dbconnect.php'; 
          //Set variables. 
          $firstName = $_POST["firstName"]; 
          $lastName = $_POST["lastName"]; 
          $query = "SELECT * FROM guests WHERE PartyID IN (SELECT PartyID FROM guests WHERE FirstName = '$firstName' AND LastName = '$lastName')"; 
          $result = mysqli_query($sql, $query); 
          //If query doesn't return any results, give an error. 
          if (mysqli_num_rows($result) == 0) { 
           echo "<p id=" . '"' . "searchError" . '"' . ">Sorry, I couldn't find your name. Try again. If you still have an issue please send me an email."; 
          } 
          //If query does return results, create a new form that allows guests to say if they are attending or not. 
          else { 
           echo '<form method = "post" action="rsvp.php"> 
           <span class="guestNames">Party Members</span> 
           <span class="radioButtons">Attending</span> 
           <span class="radioButtons">Not Attending</span> 
           <br/> 
           <br/> 
           '; 
           while ($row = mysqli_fetch_array($result)) { 
            echo '<span class="guestNames">' . $row['FirstName'] 
            . ' ' 
            . $row['LastName'] . '</span> 
            <input type="radio" class="radioButtons" name="' . $row['ID'] . '"value="yes"> 
            <input type="radio" class="radioButtons" name="' . $row['ID'] . '"value="no"> 
            <br /> 
            '; 
           } 
           echo '<input type="submit" name="rsvp_submit" value="RSVP"> 
           </form>'; 
          } 
    
          mysqli_close($sql); 
         } 
    
  3. 创建另一个表单。数据库返回用户聚会的所有成员的姓名,以及“出席”或“不出席”单选按钮选项。它看起来像this
  4. 用户为每个成员选择适当的单选按钮并点击“RSVP”按钮。这是我卡住的地方。见下面...

      //This is the code that will eventually update the SQL database with the user's responses. 
          if (isset($_POST['rsvp_submit'])) { 
           echo 'What do I do now?'; 
          } 
    
  5. 在“RSVP”按钮上按下,为每个来宾运行适当的更新语句。

我真的认为我可以找出所有的数据验证(确保每个客人都有一个无线电框选择),并更新语句,一旦我经过第4步。我真的不知道该怎么办这个。关于应该做什么,我有很多想法,但我并没有比以前更长时间,我希望能从这里的专家那里得到一些想法。再次,任何帮助将不胜感激。

+0

首先,在你即将举行婚礼的祝贺!我可以提出一个建议,而不是强调你自己,你可能想看看[this](http://thydzik.com/online-rsvp-form-and-database-with-php-javascript-and -mysql /)。 –

+0

感谢您的快速回复。实际上,我在发布之前就下载了它。我做了一个快速扫描,看到了很多我不需要的东西。在我的工作中,我不得不经历其他人的HTML/CSS足够的时间,才能意识到构建一些简单的东西通常比较容易,而不是剥离更复杂的项目以适应您的需求。我希望在这里找到一些东西,如果失败了,我会去Hydzik路线。我也对PHP很感兴趣,并打算在这个项目完成后继续使用它。再次感谢你的回复。 – Krazyeyes21

+0

相信我,我听到你的声音。我在婚礼前至少还有一年时间,我正在为RSVP制作一个网站,试图在注册表中挂钩整个她的声音。尽管如此,尽管如此,我完全满足于投掷一个WordPress网站,并且每天都这样称呼它。还有很多其他的东西需要强调! –

回答

0

我想你的形式应该是这样的:

<input type="radio" class="radioButtons" name="guess[' . $row['ID'] . ']" value="yes"> 
<input type="radio" class="radioButtons" name="guess[' . $row['ID'] . ']" value="no"> 

然后,在你的PHP文件:

if (isset($_POST['rsvp_submit'])) { 
    foreach ($_POST['guess'] as $key => $value) { 
     $attending = 0; 
     $not_attending = 0; 
     if ($value == 'yes') { 
      $attending = 1; 
     } else if ($value == 'no') { 
      $not_attending = 1; 
     } 
     $sql = 'UPDATE guess set attending = $attending, not_attending = $not_attending WHERE id = $key; 
     ..... 
    } 
}