2012-11-15 3 views
1

양식 데이터를 제출하기 전에 양식 데이터를 Wordpress 데이터베이스에 저장하려고합니다. 도와주세요. Heres는 내 코드와 데이터베이스에 삽입하는 PHP 코드 : DB에 삽입제출하기 전에 양식 데이터를 데이터베이스에 저장하는 방법

<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에 저장되도록 제출해야합니다. db –

+0

@markV 여러분은'submit'과'save'라는 용어에 대한 오해가 있다고 생각합니다. 당신은'submit'에 대한 다른 이해를 가지고 있을지 모르지만 그것은 버튼이나 아약스를 클릭하여 서버에 데이터를 보내는 행위입니다 – ianace

답변

1

"제출"서버로 전송 할 수있는 유일한 방법은 당신의 여부이다 AJAX 또는 전통적인 방법을 통해 양식을 제출하십시오 - 차이는 없습니다.

이것은 클라이언트 - 서버 모델입니다. 양식은 클라이언트에 있으며, DB는 서버에 있습니다.

0

문의 양식 7 (WP 플러그인) 사용을 권장합니다. wpcf7_before_send_mail이라는 PHP 훅을 사용할 수 있습니다. 모든 연락처 양식 데이터가있는 개체를 데이터베이스에 쓰거나 다른 서버 측 작업을 수행하는 데 사용할 수있는 사용자 지정 함수에 전달합니다. 여기에 (정말) 간단한 예제 (이 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 양식 제출물을 데이터베이스에 작성하지만 사용하지는 않았으므로 주석을 달 수 없습니다. 일반적으로 나는 당신의 서버에없는 PHP 스크립트에 폼 포스트 데이터를 보내고 있기 때문에 이것을 위해 contact form 7을 사용하는 것을 권장한다.

0

나는 당신이 정말로 의미하는 질문에서 INFER를 할 수 있습니다 : 내가 제어 할 수없는 다른 사이트로 제출하기 전에이 양식을 데이터베이스에 저장하려고합니다. 데이터를 제 3 자에게 제출하기 전에 자신의 데이터베이스에 저장하려고한다는 것을 의미합니다. 즉, 여기에 사건의 경우

내가 추천 내용은 다음과 같습니다

양식의 onSubmit 이벤트 (<form onSubmit="YourJavasScriptMethod();">)를 사용합니다. JQuery과 $ .ajax()를 사용하여 모든 양식 입력을 읽고 값을 데이터베이스에 저장할 수있는 자신의 스크립트에 제출하십시오. onSubmit 메서드가 끝나면 true를 반환해야 브라우저가 양식을 계속 제출할 수 있습니다.

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

    <input />... //your inputs 

</form> 

와 자바 스크립트 : 나는 해결책은 간단하다 생각

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

: 여기

는 의사 코드 예제 1)을 저장하는 PHP 페이지에 양식을 제출 데이터베이스에 저장하고 2) 원하는 곳으로 보내십시오. 귀하의 경우에 가장 단순하고 가장 많이 사용되는 솔루션입니다!

관련 문제