2

我的问题真的很简单。

我有很多链接,例如:

$this->Html->link(__('Calculer'), 'log_import/'.$suivi['Suivi']['date'], array('class' => 'logImport')

如您所见,我的“a”标签的 href 属性在每个链接上都会发生变化(诸如“2012-01-01”、“2012-10-15”等日期...)

当我点击我的链接时,jquery 代码正在执行:

$this->Js
    ->get('.logImport')
    ->event('click',
        $this->Js->request(
          array('action' => '$(this).attr("href")'),
          array('async' => true,
                'update' => '#test')
          ));

我收到一个错误,因为 ajax 请求使用的 URL 是:

/suivis/$(this).attr("href")

并不是 :

/suivis/log_import/2012-01-01
4

2 回答 2

0

我认为这行不通:

array('action' => '$(this).attr("href")')

似乎该值被视为字符串。

我的建议是使用原始 jquery 代码:

$('.logImport',this.DOMDoc).each(
  function(index, object){

    var href = $(this).get(0).href;
    $(this).get(0).href = "javascript:void(0);"

    // attach click function for each link
    $(this).click(function() {

        // make request here            
        $.ajax({
            type: "post",
            url: href,
            ...
        })

    });
  }
);
于 2012-11-23T14:17:30.350 回答
0

是的,最后我在 JS Helper 缓冲区中使用了“纯”jquery 代码。

这是我的代码(您可以直接使用 $(this).attr 并绕过每个循环;-)

$this->Js->buffer('
  $(".logImport").click(function(event) {
    event.preventDefault();
    $.ajax({
        url: $(this).attr("href"),
        })
        .done(function(){
          alert("OK");
          })
        .fail(function(){
          alert("FAILED");
          });

    });
');

顺便说一句,如果有人知道的话,我仍然对答案感兴趣....

于 2012-11-23T15:16:13.450 回答