2012-11-15 324 views
1

我正在嘗試在提交表單數據之前將表單數據保存到wordpress數據庫中。請幫忙。我的繼承人代碼和PHP代碼插入到數據庫:如何在提交前將表單數據保存到數據庫中

<form method="post" action="https://app.icontact.com/icp/signup.php" name="icpsignup" 

id="icpsignup1030" accept-charset="UTF-8" onsubmit="return verifyRequired1030();"> 
<input type="hidden" name="redirect" value="http://www.123.com/thank-you.html"> 
<input type="hidden" name="errorredirect" value="http://www.123.com/error.html"> 
<input type="hidden" name="listid" value="16360"> 
<input type="hidden" name="specialid:16360" value="MA3A"> 

<input type="hidden" name="clientid" value="1259610"> 
<input type="hidden" name="formid" value="1030"> 
<input type="hidden" name="reallistid" value="1"> 
<input type="hidden" name="doubleopt" value="0"> 
<input type="text" name="fields_email" size="21" style="padding:5px;"> 
<input type="image" name="submit" src="signup button top.png" value="" height="32px"> 

</form> 

和代碼插入到數據庫:

<?php 
    require_once('../../../wp-config.php'); 
    global $wpdb; 
    $table_name = "icontact_emails"; 
    $email = $_POST[fields_email]; 
    if (trim($email) != ""){ 
    $wpdb->insert($table_name, array('email' => $email, 'timestamp'=> date("Y- m-d h:i:s"))); 
    } 
?> 
+2

你想什麼時候存儲它?在什麼事件? –

+0

服務器沒有神奇的權力來訪問用戶計算機的數據必須提交保存在服務器端db – 2012-11-15 20:30:13

+0

@markV我認爲你有'提交'和'保存'的術語的誤解;你可能對'submit'有不同的理解,但它通過點擊按鈕或ajax來將數據發送到服務器 – ianace

回答

1

「提交」是將其傳輸到服務器的唯一途徑,無論你通過AJAX或傳統方法提交表單 - 沒有區別。

請記住,這是一個客戶端 - 服務器模型。表單在客戶端,數據庫在服務器上。

0

我會推薦使用聯繫表格7(WP插件)。內置了一個PHP鉤子,您可以使用它來執行此操作,稱爲wpcf7_before_send_mail。它將一個包含所有聯繫表單數據的對象傳遞給您可以用來寫入數據庫或執行其他服務器端任務的自定義函數。這裏有一個(真的)簡單的例子(這個進去的functions.php):

add_action('wpcf7_before_send_mail', 'save_contact_to_db'); 
function save_contact_to_db($cf7) { 
    $email = $cf7->posted_data['fields_email']; 
    // put database writing stuff here 
} 

有一個little more info to be had here。另外this link should be helpful,因爲它是人們討論如何做你完全相同的事情你問。也有a plugin會自動寫入CF7或Jetpack表單提交給你的數據庫,但我從來沒有使用過,所以我不能評論它。一般來說,儘管我建議使用聯繫表單7,尤其是因爲您要將表單發佈數據發送到不在您的服務器上的php腳本。

0

我可以從你的問題INFER你真的是說:我試圖將這個表單保存到數據庫之前,我提交給另一個網站,我不控制。在將數據提交給第三方之前,您想將其保存到自己的數據庫中。

如果這是這裏的情況就是我的建議:

使用表單的onsubmit事件(<form onSubmit="YourJavasScriptMethod();">)。使用JQuery和$ .ajax()來讀取您的所有表單輸入,並將它們提交給您自己的腳本,以便將值保存到數據庫。在onSubmit方法結束時,請務必返回true,以便瀏覽器繼續提交表單。

下面是一個僞代碼示例:

<form id="myForm" onSubmit="SaveToMyOwnDatabase();"> 

    <input />... //your inputs 

</form> 

和你的javascript:

function SaveToMyOwnDatabase() 
{ 
    // Create Json object by selecting each of the form inputs 
    // Call $.ajax and submit the Json to your script which processes the json 

    return true; 
} 
0

我認爲解決的辦法很簡單:提交表單的PHP頁面將:1)保存在你的數據庫和2)發送它,無論你想要的。到目前爲止,您的案例中最簡單和最常用的解決方案!

相關問題