2012-11-15 331 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)发送它,无论你想要的。到目前为止,您的案例中最简单和最常用的解决方案!

相关问题