2012-08-08 32 views
0

我有一個HTML表單,人們可以訂閱郵件列表。表單包含表單驗證,並且在提交表單時,數據使用My SQL存儲在數據庫中。取消訂閱HTML表單使用PHP和我的sql

下面是index.html頁面上的代碼,其中形式是

<form id="subscribe-form" action="send.php" method="post"> 
    <p id="status"></p> 
    <div> 
     <label for="title">Title:</label> 
     <select class="uniform" name="title" id="title"> 
     <option>Please Choose</option> 
     <option>Mr</option> 
     <option>Mrs</option> 
     <option>Miss</option> 
     <option>Ms</option> 
     </select> 
    </div> 
    <div> 
     <label for="firstName">First name:</label> 
     <input type="text" id="firstName" name="firstName" /> 
    </div> 
    <div> 
     <label for="surname">Surname:</label> 
     <input type="text" id="surname" name="surname" /> 
    </div> 
    <div> 
     <label for="email">Email:</label> 
     <input type="text" id="email" name="email" /> 
    </div> 
    <div> 
     <label for="phone">Contact Number:</label> 
     <input type="text" id="phone" name="phone" /> 
    </div> 
    <div> 
     <label for="title">How did you hear about us?</label> 
     <select class="uniform" name="refer" id="refer"> 
     <option>Please Choose</option> 
     <option>Google</option> 
     <option>Yahoo</option> 
     <option>Word of Mouth</option> 
     <option>Others</option> 
     </select> 
    </div> 
    <div> 
     <input type="checkbox" name="news_updates" value="1" /> 
     I'd like to hear about the latest news and events updates</div> 
    <div> 
     <input class="button" type="submit" value=""/> 
    </div> 
    </form> 

這裏是send.php

<?php 

    include ('connection.php'); 

    $sql="INSERT INTO form_data (title,firstName, surname, email, phone, refer, news_updates) 
    VALUES 
    ('$_POST[title]', '$_POST[firstName]','$_POST[surname]','$_POST[email]','$_POST[phone]','$_POST[refer]','$_POST[news_updates]')"; 

    if (!mysql_query($sql, $connected)) 
     { 
     die('Error: ' . mysql_error()); 
     } 

    mysql_close($connected);  
?> 

的代碼,我想再拍HTML(退訂。 html)頁面,人們可以通過輸入他們的電子郵件地址來取消訂閱,以便他們的電子郵件地址與數據庫中已存在的相應電子郵件相匹配,並將其從「我的Sql」數據庫中刪除。 我發現這個教程是有幫助的 - http://www.phpsuperblog.com/php/delete-records-from-mysql-database-with-html-form-and-php/

這是我的unsubscribe.html頁面上的窗體。

<form id="unsubscribe_form" action="delete.php" method="post"> 
    <div> 
    <label for="email_remove">Email:</label> 
    <input type="text" id="email_remove" name="email_remove" /> 
    </div> 
    <div> 
    <input name="delete" type="submit" id="delete" value="" class="unsubscribe_btn"> 
    </div> 
</form> 

但是當我在取消訂閱表單中輸入method =「post」時。來自subscribe/index.html表單的數據不會存儲在My Sql中,而是會顯示爲空白。 所以我猜我不能有兩個「後」的方法可能?

如果有人能指導我在正確的方向,將不勝感激。謝謝。

+1

請不要使用'mysql_ *'函數來編寫新代碼。他們不再維護,社區已經開始[棄用程序](http://goo.gl/KJveJ)。查看[*紅色框*](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/3gqF9)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/vFWnC)。 – 2012-08-08 02:14:16

+0

我不太關注,恐怕 - 你的意思是訂閱表單不工作?或者,取消訂閱代碼有問題嗎? – andrewsi 2012-08-08 02:34:55

+1

向我們展示您的'delete.php'代碼。 – 2012-08-08 04:20:29

回答

0

我想你是在你的學習階段。所以,我建議你檢查在接收帖子的頁面上調用的POST方法。

例子:在你的subscribe.php 你應該有:

<input class = "button" type = "submit" value = "Subscribe" name = "subscribe" /> 

在send.php

你必須做到:

if(!isset($_POST['subscribe']) 
{ 
header('location: subscribe.html'); 
} 

必須使用isset爲您的網頁。

如果你可以顯示你的delete.php,也許我可以編輯這篇文章,並進一步幫助你,但到目前爲止......需要檢查,你可以使用盡可能多的表單(即使在一個頁面上)但是,確保他們都有不同的ID /名稱。

你delete.php腳本應該是:

<?php 
require ('connection.php'); // User require for important functions so that if not found, it throws fatal error 
$email = $_POST['email_remove']; 
// Check for isset POST 
$query = "DELETE from form_data WHERE email = '".$email."'"; 
if(mysql_query($query)){ echo "deleted";} else{ echo "fail";} 
?> 

您delete.php看起來不錯給我。

可以將以下內容添加到第2行中 echo「」; print_r($ _ POST);

和註釋數組中的數組?

+0

Hi KarmicDice感謝您提供POST建議並提供關於擁有儘可能多的表單的提示。是的,我仍然處於學習階段,所以知道這很有幫助。 這是我的delete.php代碼 kayee 2012-08-08 06:53:42

+0

感謝KarmicDice的反饋一次。我將我的subscribe.php中的提交按鈕更改爲這個 ' ' 並添加了這個我的send.php 'if(isset($ _ POST ['action'])&& $ _POST ['action'] = ='submitform')'' – kayee 2012-08-08 12:13:32

+0

訂閱表單和我的sql數據庫正在工作:)!但我發現我的form_validation.js文件也造成了這個問題。所以我把它拿出來,現在我沒有任何形式驗證:(我認爲這個函數'$(「#contact-form」)。submit(function(e){e .preventDefault();' form_validation文件與在send.php的submitform干擾? \t \t \t' – kayee 2012-08-08 12:20:03