我有3个按钮(图像链接,最终将演变为javascript或更好的东西)
这些按钮中的每一个都应该向处理程序脚本发送一个值,如果按下按钮1,则执行选择1,选择2,依此类推。
我想知道最好的办法是什么。我不想使用GET。如果可能的话,我想使用POST,但我认为不是。我也考虑过cookie,但问题是即使你可以调用JS函数通过链接创建一个cookie,你也不能去PHP页面进行处理,在同一个点击中可以吗?
它会像用户单击按钮img一样工作,然后将它们带到处理程序脚本,但处理程序会在他们知道它们存在之前将其重定向回来。
同样,这不是一个表单,我需要用超链接来做这个。我想我可以为每个选择设置不同的页面,但我认为这不是有效的。
谢谢!
答案 0 :(得分:2)
如果您希望使用POST传递变量,您可以在页面上创建一个表单,并让您的链接在onClick上执行一些javascript代码。他们将变量设置为所需的值,然后提交表单。关键线将是:
document.getElementById("user_choice").value = 2; // or whatever the value for this link is
document.getElementById("my_form").submit();
答案 1 :(得分:1)
您可以将图片链接转换为:
<form method="post" action="blah">
<input type="hidden" name="function" value="function1" />
<input type="image" scr="whatever" />
</form>
通过这种方式,它们看起来仍然像图像,但实际上是用你想要的任何形式发布的形式。无论如何,这是简单的方法。更难的方法是使用AJAX。
答案 2 :(得分:1)
如果您想使用JavaScript,请查看jQuery。使用jQuery's click-method,您可以轻松处理元素点击:
假设你有这个HTML:
<div id="target">
Click here
</div>
<div id="other">
Trigger the handler
</div>
使用jQuery,您可以轻松跟踪标记为target的元素:
$("#target").click(function() {
alert("Handler for .click() called.");
});
如果您不想直接POST或GET点击,我建议注册jQuery点击处理程序,它根据点击的元素设置JavaScript变量。
注意,jQuery的click-handler可以注册任何元素,而不仅仅是表单。另外请注意,例如,上面的click-handler没有POST或GET页面到服务器。
此外,请看一下如何阻止浏览器提交表单:What's the effect of adding 'return false' to a click event listener?
比JavaScript更好的是CoffeScript,它可以编译为JavaScript但更容易实现。试一试!
答案 3 :(得分:0)
AJAX怎么样?它是您问题的最佳选择,奖金部分也可以使用帖子。