我有一个文本框。我想从那里获取用户输入并将其传递给PHP而不使用提交按钮。我更喜欢普通的按钮,onclick
应该将数据传递给PHP。
我听到的是:
onclick
,然后您可以提交表单
从那里但我希望在提交表格后能够在同一页面上。这就是为什么我不想首先提交表格。但看起来没有别的办法。
如果有人知道提交方法,请帮助。
答案 0 :(得分:10)
是的,它被称为AJAX。 :)
在jQuery中,为简洁起见:
// or $('#textbox_autopost').blur if you want to do it when the box loses focus
$('#textbox_autopost').change(function(){
$.ajax({
type: "POST",
url: "some.php",
data: {text:$(this).val()}
});
});
如果您想通过按钮点击
来完成<button id="inlinesubmit_button" type="button">submit</submit>
$('#inlinesubmit_button').click(function(){
$.ajax({
type: "POST",
url: "some.php",
data: {text:$('#textbox').val()}
});
});
你也可以通过A HREF(或提交按钮,或者其他古怪的东西来做到这一点:
<!-- backup if JS not available -->
<a href="handler.php" id="inline_submit_a">add comment</a>
$('#inline_submit_a').click(function(evt){
$.ajax({
type: "POST",
url: "some.php",
data: {text:$('#textbox').val()}
});
evt.preventDefault();
return false;
});
如果你想输入:
$('#textbox_autopost_onenter').keydown(function(evt){
if ((evt.keyCode) && (evt.keyCode == 13))
{
$.ajax({
type: "POST",
url: "some.php",
data: {text:$(this).val()}
});
evt.preventDefault();
return false;
}
});
最终,网站就绪代码:
$(document).ready(function(){
function submitMe(selector)
{
$.ajax({
type: "POST",
url: "some.php",
data: {text:$(selector).val()}
});
}
$('#textbox_button').click(function(){
submitMe('#textbox');
});
$('#textbox').keydown(function(evt){
if ((evt.keyCode) &&(evt.keyCode == 13))
{
submitMe('#textbox');
evt.preventDefault();
return false;
}
});
答案 1 :(得分:3)
您需要使用Javascript将AJAX POST请求发回服务器上的PHP。
有一个很好的教程here,它使用jQuery来验证表单,将其发送到服务器,然后根据服务器的响应向用户显示一条消息。
答案 2 :(得分:2)
答案 3 :(得分:2)
有几种方法可以做到这一点......
听起来你是在追求非重定向解决方案,所以我推荐jQuery(这是我最喜欢的,但还有很多其他解决方案来实现AJAX)并做了类似以下的事情:
假设您有一个文本框和按钮,如下所示:
<input id="txt_input" type="text" />
<input id="btn_send" type="button" value="Submit" />
然后做这样的事情
$(document).ready(function () {
$("#btn_send").click(function () {
// Do stuff BEFORE sending... //
callAFunction();
var test = "asdfasdf";
// Send the text to PHP //
$.post("test.php", { input: $("#txt_input").val()},
function(data) {
alert("test.php returned: " + data);
}
);
// Do more stuff after sending.... //
callAnotherFunction();
});
});
我相信你会得到你的追求。有关jQuery以及$ .post的更多选项的更多信息,请点击此处:http://api.jquery.com/jQuery.post/
希望有所帮助!
答案 4 :(得分:1)
我不确定“普通按钮”的含义,但如果您不想使用<input type="submit">
,则可以使用<button type="submit">
。
button
为您提供了更大的布局自由,但如果您在一个页面中使用多个button
元素,则旧版本的IE会感到困惑。