我有一个链接,点击后应生成PDF文档并更改自己的文本。
这是我的JS功能:
function clander(){
window.location="orders/issueBill/order_id/"+order_id;
$('#jander').replaceWith('pdf just generated');
}
链接:
<a href="#" id="jander" onClick='clander()'>click here</a>
行动:
public function executeIssueBill(sfWebRequest $request) {
//here is the code that generates the pdf.
}
问题:当我点击链接时,它会生成pdf,但链接的文本不会更改。如果我删除window.location...
行,它只会更改文字。
我的代码的原因是here。
有什么想法吗?
此致
哈维
答案 0 :(得分:1)
问题在于它永远不会涉及到这一部分:
$('#jander').replaceWith('pdf just generated');
它会将用户重定向到"orders/issueBill/order_id/"+order_id
,这是一个不同的页面,因此它不记得状态。
我猜你最好的办法是将参数传递给新页面(即"orders/issueBill/order_id/"+order_id+"?pdf_generated=1"
) - 这样就知道pdf已经生成了,你可以相应地更改链接。
答案 1 :(得分:0)
我认为这是js函数中语句的顺序。如果你反过来改变顺序,应该这样工作:
<script>
function clander(){
document.getElementById('jander').innerHTML = 'pdf just generated';
window.location="orders/issueBill/order_id/"+order_id;
}
</script>
<a href="#" id="jander" onClick='clander()'>click here</a>
最佳, 卡姆兰