2009-05-12 3 views
3

편집 : 올바른 URL을 얻는 방법을 찾았습니다. Se the solution in this thread.jQuery.ajax를 사용하여 양식 데이터를 MySQL에 저장하십시오.

안녕하세요, 저는 MySQL 데이터베이스에 데이터를 저장할 수 있도록 양식을 처리하는 데 문제가 있습니다. 저는 Wordpress를 CMS로 사용하고 있습니다. http://www.ryancoughlin.com/2008/11/04/use-jquery-to-submit-form

내 문제의 원인은 내가 자바 스크립트에서 잘못된 URL을 사용하고 있다는 것을 확신 :

이 나는이 예제를 사용했습니다. 오류 메시지는 'undefined'만 반환하고 Firebug는 페이지를 찾을 수 없음 404 오류를보고합니다.

그럼 올바른 URL은 무엇입니까? 도움을 주시면 대단히 감사하겠습니다.

내 사이트의 구조 :

Mywebsite (folder)  
    sl_register.tpl.php 
    includes (folder)  
    storelocator (folder) 
    process_frm_store.php 
    frm_store.php 
    js (folder) 
    myscripts.js 

그리고 이것은 내 사이트의 논리가 구축입니다 :

sl_register.tpl.php :

<?php 
/* 
    Template Name: SL - Register Store 
*/ 
    get_header(); 
    include_once 'includes/storeLocator/frm_store.php'; 
    get_footer(); 
?> 

frm_store.php :

<form id="store_data_form" class="appnitro" method="post" action=""> 
    <input id="store_active" name="store_active" type="hidden" value="pending" /> 
    <input id="store_name" name="store_name" type="text" value=""/> 
    <input id="store_street1" name="store_street1" type="text" value="" /> 
    <input id="saveForm" class="submitButton" type="submit" name="save" value="Save" /> 
</form> 

process_fr m_store.php :

<?php 
    $myDB = new DAL(); 
    $myDB->connect(); 

    if (isset($_POST['save'])) 
    { 
    $formData = array(
     "name"=> mysql_real_escape_string($_POST['store_name']), 
     "street1"=> mysql_real_escape_string($_POST['store_street1']), 
     "zipcode"=> mysql_real_escape_string($_POST['store_zipcode'])); 

    $myDB->addNewStore($formData); 
    } 
?> 

myscripts.js :

jQuery.processForms = function() 
{ 
    jQuery('form#store_data_form').submit(function() 
    { 
    var store_name = 'Test store'; //jQuery("input#store_name").val(); 
    var store_street1 = 'Sesamy street';//Set constant for testing 
    var store_zipcode = '0574'; //Set constant for testing 
    var dataString = 'name='+ store_name + '&street1=' + store_street1 + '&zipcode=' + store_zipcode;  
    jQuery.ajax(
    { 
     type: "POST", 
     url: "process_frm_store.php", 
     data: dataString, 
     error: function(XMLHttpRequest, textStatus, errorThrown) 
     { 
     alert(errorThrown); // Just for debugging 
     jQuery('#suggestNewStore div.error').fadeIn(); 
     }, 
     success: function() 
     { 
     alert('It works!'); 
     jQuery('#suggestNewStore div.success').fadeIn(); 
     } 
    }); 
    return false;  
    }); 
} 

답변

0

그것은 그것 http://www.yourwebsite.com/storelocator/process_frm_store.php 같은 절대 경로가 안전 측에있을 사용자에게 간단. 당신의 ..js 파일이 포함

+0

답장을 보내 주셔서 감사합니다. 사용자 친화적 인 URL이있는 Wordpress CMS를 사용하고 있기 때문에 작동하지 않을 것이라고 생각합니다. 내 페이지의 URL은/형식은 다음과 같습니다 에 http : // localhost를/내 사이트/저장-로케이터 등록/매장 라벨 논리적 URL은 다음과 같습니다 HTTP : //localhost/mysite/sl_register.tpl.php 방화범이 다음과 같은 오류를보고합니다 : POST (url) 404 찾을 수 없음 url은 내가 자바 스크립트 파일에 넣은 것입니다. – Steven

0

당신은 <?php 태그가 감싸 js 또는 storelocator 폴더 외부에, 당신의 기본 경로에서 실행되기 때문에

그렇지 않으면 아약스 방법의 url PARAM은 storelocator/process_frm_store.php을해야 당신의 include_once sl_register.tpl.php 에서이 <?php 태그 ... 당신은 내가이 아마 뭔가를 깨는 이해하지 못하는 일을하지 않는 한 안에 이미있는 경우.

+0

오, 죄송합니다 ... 그건 내 잘라 붙이기의 오타입니다. 전체 코드에서 해당 줄은 PHP 태그 밖에 있습니다. 수정하고 수정하겠습니다. – Steven

관련 문제