【问题标题】:What is wrong with this code please? (Form passing variables)请问这段代码有什么问题? (表单传递变量)
【发布时间】:2011-06-12 10:04:22
【问题描述】:

我有这个代码。尝试将表单值从一个内部页面传递到另一个内部页面,但它不起作用。

代码如下:

<div data-role="page" id="home">

    <div data-role="header">
        <h1>Page One</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <form action="post" name="myform">
        <input type="text" value="" name="mytext" />
               <input type="submit" value="submit" />
               </form>
    </div><!-- /content -->
</div><!-- /page -->

//还有第2页

<div data-role="page" id="page2">

    <div data-role="header">
        <h1>Page Two</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <?php if (isset($_POST['mytext'])) {
  // do something with $_POST['value']
  echo 'it works'; } ?>
    </div><!-- /content -->
</div><!-- /page -->

它基本上不起作用...没有错误,但也没有值。

【问题讨论】:

  • “它基本上不起作用......没有错误,但也没有值。” 这看起来很奇怪。我怀疑有一个错误,但你没有注意它。太多的 jQuery 示例(甚至 jQuery API 函数)忽略了错误处理。 始终确保处理error 回调(在每次调用时,或通过ajaxSetup 全局处理)。在这种情况下,您应该会看到 error 被调用 404,除非您将表单发布到的 URL 确实是“发布”(这是可能的,但不太可能)。

标签: php jquery html jquery-mobile


【解决方案1】:

您的操作应该是要处理您的 post 变量的 php 脚本,并且方法应该是 post。

<form action="somefile.php" method="post">

【讨论】:

    【解决方案2】:

    错误很可能在这里:

    <form action="post" name="myform">
            <input type="text" value="" name="mytext" />
            <input type="submit" value="submit" />
    </form>
    

    action 应该是表单的处理程序,可以是同一页面或另一个页面(详细说明表单的 php 脚本所在的位置)。 POST 是 METHOD。(可以是 GET 或 POST)

    应该是这样的:

    <form action="" method="POST" name="myform">  <!-- action = "" reloads the same page, otherwise you could write action="myphppage.php" or whatever -->
        <input type="text" value="" name="mytext" />
        <input type="submit" value="submit" />
    </form>
    

    【讨论】:

      【解决方案3】:
      <form action="post" name="myform">
      

      错了。

      应该是这样的:

      <form method="post" name="myform" action="">
      

      您需要发送一个 POST 方法。该操作是空的,因此它会将其发送到页面本身。

      【讨论】:

        【解决方案4】:

        'action' 应该是作为目标 URL 的页面。您将method="post"action="post" 混淆了。设置动作为"second_page.php".

        我没有完全理解你所说的内部页面是什么意思,但是如果是同一个页面,只是一个不同的 div,那么将操作留空(action='')。

        【讨论】:

        • 我怀疑他正在使用 jQuery mobile,因此是内部页面。它将带有data-role="page" 的 div 呈现为最终移动应用程序中的单独页面。但是,从纯粹的结构 POV 来看,代码都在同一个“页面”上。以为我会为你解决这个问题:)
        猜你喜欢
        • 2017-01-10
        • 2015-04-25
        • 2018-09-09
        相关资源
        最近更新 更多