将值从html表单传递到php,而不提交表单

将值从html表单传递到php,而不提交表单,php,html,Php,Html,我有一个文本框。我想从那里获取用户输入并将其传递给PHP,而不使用submit按钮。我更喜欢一个普通的按钮,onclick应该将数据传递给PHP 我听说: 您可以调用一个JS函数onclick,然后提交表单 从那里 但我想在提交表格后,在同一页上。这就是我当初不想提交表格的原因。但是看起来没有别的办法了 如果有人知道提交方法,请提供帮助。您需要使用Javascript向服务器上的PHP发出AJAX POST请求 有一个很好的教程,它使用jQuery验证表单,将表单发送到服务器,然后根据服务器的响

我有一个文本框。我想从那里获取用户输入并将其传递给PHP,而不使用submit按钮。我更喜欢一个普通的按钮,onclick应该将数据传递给PHP

我听说:

您可以调用一个JS函数onclick,然后提交表单 从那里 但我想在提交表格后,在同一页上。这就是我当初不想提交表格的原因。但是看起来没有别的办法了


如果有人知道提交方法,请提供帮助。

您需要使用Javascript向服务器上的PHP发出AJAX POST请求

有一个很好的教程,它使用jQuery验证表单,将表单发送到服务器,然后根据服务器的响应向用户显示消息。

您必须使用AJAX

我强烈建议使用jquery:


是的,它被称为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()}
    });
});
最终现场准备代码:

$(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;
      }
   });

我不知道你所说的普通按钮是什么意思,但如果你不想使用,你可以使用


一个按钮在布局上给了你更多的自由,但是如果你在一个页面中使用多个按钮元素,旧版本的IE会变得混乱。

有几种方法可以做到这一点

听起来您想要的是非重定向解决方案,所以我建议使用jQuery,这是我的最爱,但是还有很多其他解决方案可以实现AJAX并执行以下操作:

假设您有这样一个文本框和按钮:

<input id="txt_input" type="text" />
<input id="btn_send" type="button" value="Submit" />
我相信这会得到你想要的。有关jQuery和使用$.post的更多选项,请点击此处:


希望有帮助

你的目标是什么?你想防止页面被重新加载吗?是的,另一个目标是我不想使用AJAXjava\flash应用程序。我能想到的唯一一件事是,JAX通常被认为是指在不离开页面的情况下与服务器通信。如果您没有正常提交表单,并且正在将数据从表单发送到服务器,那么您就是在使用Ajax。关于您的编辑,正如大家所指出的,这就是Ajax。@koool:Ajax实际上只是所有可以连接到服务器而无需发布表单的技术的名称。没有AJAX,您将一无所获。有没有一种特定品牌的AJAX是你想要避免的?@koool:对于AJAX,它发生在后台,用户不知道发生了什么。数据被发送,服务器接收,页面不重定向,或者其他任何事情。事实上,除非你有一个弹出消息或什么,否则用户可能会认为它坏了,因为绝对没有反馈。这不是你想要的行为吗?这就是AJAX所做的。非常有洞察力,谢谢。。。是的,你可以这样假设。。。。。这就像用户正在发送一条消息,如果一切都成功,那么我使用PHP来显示主题和sentHi John。。。我只想问一件事。。。这会在用户尚未完成键入时发送数据,还是在用户完成键入后发送数据。。。。因为听起来几乎每个中风后都会发送值。。。。。我可以确保用户已经完成输入是的,每次按键都会发送。您希望如何检测用户是否已完成键入?有两个选项:用户点击回车,用户点击表格外。如果是后者,只需将“.changefunction”更改为“.blurfunction”。前者是可行的,但需要另外一两行代码。。。数据:{text:$'textbox'.val}。。。我现在就更新它。$\u POST['text']。您可以更改密钥的名称。。这对它的工作方式并不重要。@koool-同意。我想你需要发布你的问题。。。或者更好,现在就做一个新的。嗨。。。谢谢你的回答,但点击后我想调用另外2个javascript函数possible@JFitzDela嗨,我正试图这样做,但我认为我做错了什么。。。我应该如何访问该值。。我使用$\u POST['input']。。。是这样吗。。。请帮忙抱歉我这么晚才给你回电话$_POST['input']在这种情况下应该可以正常工作-如果您仍然有问题,请告诉我!
$(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;
      }
   });
<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();
    });
});