函数内JavaScript函数的正确语法
函数pagination($total, $limit, $page)
返回页码[pg#01 pg#02 pg#03 pg#04 NEXT]。函数内JavaScript函数的正确语法
通过点击页码(例如,页码#02),javascript:showPagination('what_here')
应该向服务器发送一个AJAX请求,该请求包含函数pagination()
中返回的页码。
这两个功能都正常工作。当我用showPagination('2')
测试JavaScript时,服务器获取这个数字(2)。
向服务器发送被点击的请求页码的正确语法是什么?
<td><a href="javascript:showPagination('')"><?php echo pagination($total, $limit, $page); ?></a></td>
我会倾向于试试这个:
<td><a href="javascript:showPagination('<?php echo pagination($total, $limit, $page); ?>')"><?php echo pagination($total, $limit, $page); ?></a></td>
但在同一只手可能更得心应手地使用(使用相同的语法)
onclick='showPagination(<?php echo pagination($total, $limit, $page); ?>);'
编辑:正如你评论过,我想我误解了你的问题。 你可以只尝试:
<td><a href="javascript:showPagination('<?php echo pagination($total, $limit, $page); ?>');"><?php echo pagination($total, $limit, $page); ?></a></td>
或:
<td><a href="#" onclick="showPagination('<?php echo pagination($total, $limit, $page); ?>');"><?php echo pagination($total, $limit, $page); ?></a></td>
我对'pagination()'没有任何问题,函数返回带有任何WHERE或LIMIT条件的页码。 我已经试过提到的解决方案('onclick'),但仍是服务器不从'分页得到任何值()': 这个问题实际上是关于如何发送正确的语法到服务器从'pagination()'到'showPagination()'通过Ajax的结果。 – blsn 2012-07-15 17:55:58
我编辑了我的答案,以便它现在应该回答你的问题。 – 2012-07-15 19:10:56
阅读"This question is actually about the correct syntax of how to send to the server a result from pagination() to showPagination() through Ajax."
之后,我会sugest你以下几点:
的Javascript:
// save current page to global variable
window.globalPageId = 0;
//the pseudo function
function showPagination(id) {
id || (id = globalPageId);
var xhr = new xmlHttpRequest();
xhr.open("GET", "/yourPhpPage.php?pageId="+id, true);
xhr.send();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
globalPageId = xhr.responseText; //sure if the result is only id of page;
}
}
}
然后HTML:
<td><a href="javascript:showPagination(this.getAttribute('page-id')" page-id="id of page here, from php function">link text here</a></td>
或:
<td><a href="javascript:showPagination()">link text here</a></td>
的Java与JavaScript不。 – 2012-07-15 16:28:24
作为提示,不要使用像'javascript:function()'这样的内联JavaScript。而是使用事件侦听器。如果您有兴趣改进:https://developer.mozilla.org/en/DOM/element.addEventListener,以下是一个很好的快速阅读。它还涵盖了Internet Explorer的做法,以及通常跨浏览器的解决方案。 – Francisc 2012-07-15 16:33:47
您的服务器在哪里知道,当您使用JavaScript代码发送'NEXT'时应该提供哪个页面?你有保存当前页面的会话吗?还是应该忽略该值? – 2012-07-15 16:37:38