【问题标题】:how to use javascript to invoke the value of an html special data attribute and pass to php array in yii 1.1.14?在 yii 1.1.14 中如何使用 javascript 调用 html 特殊数据属性的值并传递给 php 数组?
【发布时间】:2017-05-30 14:18:03
【问题描述】:

我有一个锚链接,其中 data-url 的值为 yii create url 像这样

<a href="#" id="download-button" data-url="<?php echo Yii::app()->createUrl('controllerName/actionName',array('var1'=>'var1_value', 'var2' => 'var2_value', 'var3' => '?')); ?>" data-chosen-type="">CLICK ME</a>

所以情况是这样的,你看到 data-chosen-type="" 属性了吗?这个值实际上是由 javascript 设置的。现在我想要发生的是,获取 data-chosen-type 属性的值并将其放置在 createUrl 事物内部的数组中的“var3”值中。所以输出应该是这样的

 <a href="#" id="download-button" data-url="<?php echo Yii::app()->createUrl('controllerName/actionName',array('var1'=>'var1_value', 'var2' => 'var2_value', 'var3' => 'value of data-chosen-type')); ?>" data-chosen-type="">CLICK ME</a>

有可能吗? 我试过这样做

'var3' => "js:$('#download-button').attr('data-chosen-type')"

它不起作用,但在视图文件中,尤其是在 CGridView 中,将 javascript 放入密钥对的值中确实有效……为什么在 createUrl 中我不能做同样的事情?我做错了吗?

【问题讨论】:

  • 不,这当然是不可能的,因为 PHP 在客户端发生任何 JavaScripty 事件之前很久就完成了。
  • 有什么办法可以解决我的问题吗?我知道一种肮脏的方式,但它很肮脏。所以我最好问问stackoverfow的专家
  • AJAX 请求到服务器,这样你就可以用正确的参数在那里调用 createUrl 方法...
  • 我改用了ajax请求......但这不是我想要发生的。但它仍然有效。谢谢..把你的答案放在一个单独的盒子里,这样我就可以接受了

标签: javascript php jquery html yii


【解决方案1】:

不,这是不可能的,因为 PHP 在客户端发生任何 JavaScripty 事件之前很久就完成了。

如果您根本无法确定服务器端的值 - 则向服务器发出 AJAX 请求,以便您可以使用正确的参数调用那里的 createUrl 方法,然后设置链接 data-url 属性使用返回的 URL。

【讨论】:

    猜你喜欢
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多