2011-08-14 24 views
2

変更イベントでjQueryを使用してポストを行うselect要素があり、スニペットにポストして結果を戻そうとしましたが、スニペットが呼び出された場合直接JavaScriptからそこ($modx)オブジェクトの概念もないだろうと私はPDOを使用してDBにアクセスすることはできません、次のように私のコードは次のとおりです。Jquery/Ajaxからのコール・スニペット

$(document).ready(function() { 

    $('#camplist').change(function() { 

     $.post('core/components/evoprograms/snippets/register-camp.php?action=getCamp&id=' + $(this).val(), function(data) { 
      $("camp-details").show(); 
      $('.result').html(data); 
     }); 

    }); 

}); 

それを行うには正しいアプローチは何ですか?

+0

を/レジスタcamp.phpスクリプトをMODxのオブジェクトをロードし、多分、関連するHTMLやPHPのいくつかを投稿解決策を考え出す方が簡単です。 :) –

+0

問題は単純にmodxのフロントエンドからAJAXコールを行い、バックエンドの呼び出しを敬遠し、問題は私がスニペットをフロントエンドから直接呼び出すことができないことです。 –

答えて

2

( 'コア/コンポーネント/ evoprograms /スニペット/レジスタcamp.php

これは良いではありません$ .post - あなたは誰が/コア/ *

の下に何もアクセスしたくありません

は基本的に二つの方法があります。

  1. 最も簡単な方法 - コンテンツとして、その中にあなただけのスニペットコール(キャッシュされていない!)その後、股関節への$ .postあなたに行うと(任意のテンプレートなし)リソースを作成します。 tリソース。

  2. 革命的な方法(クリーナー、より良い) - 独自のコネクタ(/assets/components/evoprograms/connector.php)を使用してください。詳細はsee thisをご覧ください。既存のコネクタをコピーして、必要に応じて変更してください。

0

あなたはそれが他の方法と同様に行うことができます - あなたはonchangeイベントにフォームを送信し、そのスニペットが必要呼び出すために、フォームにactionを与えることができます...

は、例えば以下のコードを参照してください -

<form action="[[!snippetname]]" method="POST"> 
    <h3>dropdown: 
    <select name="selection" onchange="this.form.submit();"> 
     <option>select</option> 
     <option value="2">all</option> 
    </select> 
    </h3> 
</form> 

これはjavascriptを必要としません。

+1

実際はthis.form.submit ) 'はJavaScriptです^) –

0

あなたは問題が何であるかを教えている場合、あなたのコア/コンポーネント/ evoprograms /スニペットに

define('MODX_API_MODE', true); 
// Full path to the index 
require_once('/path/to/modx/public_html/index.php'); 
$modx = new modX(); 
$modx->initialize('mgr'); 
//your post 
$your post here = $_POST['register']; 
関連する問題