0

私は多くのリンクを持つそのようなフォームを持っています:

<form name="myform" action="" method="get" id="form">

<p>
<a href="getValue('A')" class="del">My link</a> 
</p>
<p>
<a href="getValue('B')" class="del">My link 2</a> 
</p>
<p>
<a href="getValue('C')" class="del">My link 3</a> 
</p>

<input type="hidden" name="division" value="" />        
</form>

クリックされたリンクからフォームの値をphpスクリプトに送信し、応答を取得したいと思います(ページをリロードしないでください)。

リンクから値を取得する関数を作成しようとしています。

<script type="text/javascript">
window.addEvent('domready', function() {
getValue = function(division)
{
var division;
division=$('form').getElements('a');        
}
</script>

しかし、私はそれを正しい方法で書く方法がわかりません。次に、フォームを送信します。

$$('a.del').each(function(el) {
    el.addEvent('click', function(e) {
    new Event(e).stop();

    $('form').submit(); 

    });
});

ページをリロードしないphpファイルから応答を取得するためにどのように送信する必要がありますか?

4

2 に答える 2

0

これは私のために働く:

<form id="form">
<a data-value="A">My link</a>
...
</form>

<script>
 var links = document.id('form').getElements('a');
 links.each(function(link) {

link.addEvent('click', function(e) {
    e.stop();  

    var value = link.getProperty('data-value');

var req = new Request.HTML({
url: "/path/to/your/listener", 
data: value,
onRequest: function(){
$('display').set('text', 'Search...');
  },
onComplete: function() { 

},
update    : $('display') 
}).get( 
{data: value}   
);  
});
})      
</script>
于 2012-06-13T07:11:36.130 に答える
0

HTML に JavaScript をインラインで配置する代わりに、委任されたイベントを使用することをお勧めします。また、フォーム送信の代わりに ajax 呼び出しを使用してフォームを送信します。

<form id="form">
    <a data-value="A">My link</a>
    ...
</form>

<script>
    var formEl = document.id('form');
    formEl.addEvent('click:relay(.del)', function() {
        var value = this.getProperty('data-value');
        new Request.JSON({
            url: '/path/to/your/listener',
            onSuccess: function(data) {
                // ...
            }
        }).get({
            value: value
        });
    });
</script>
于 2012-06-11T16:03:51.420 に答える