【问题标题】:passing values between forms that are placed in same page在放置在同一页面中的表单之间传递值
【发布时间】:2014-04-09 04:20:21
【问题描述】:

在 index.php 中有 2 种形式。

<form method='post' action='res.php' name='form1' id='form1'>
Enter Name<input type='text' name='CardName' >
<input type='submit' name='submit'>
 </form>

。 .

<form method='post'  action='https://....' name='form2' id='form2'>
  <input type='hidden' name='CardName' id='CardName'  value=''>
 <form>

在第二种形式中,我需要获取在第一种形式中提交的变量的值。如何做到这一点?这两种形式在同一个页面中,并且不允许使用 session.Using jquery 是首选。请帮忙 。

【问题讨论】:

  • 我有两个疑问。 1. 您将如何提交您的第一个表单,无论是 ajax 还是 http 2. 如果您将提交您的第一个表单,那么您何时以及如何在同一页面上再次提交第二个表单。请为此清除场景,我们很乐意为您提供帮助
  • 在 res.php 中,我编写了使用 jquery 提交第二个表单的代码,它运行良好 document.forms["form2"].submit(); .
  • 1 疑问。您的问题是当您提交页面(form1 提交)时重新加载并且该值不适用于下一个表单(form2)或其他内容?

标签: javascript php jquery json


【解决方案1】:

如果你希望它在 jquery 中完成。这可能会对你有所帮助..

为第一个表单和字段添加一个id,并为按钮添加一个onclick事件。

<form method='post' action='res.php' name='form1' id="form1" onclick="submitform()">
Enter Name<input type='text' name='name' id='name'>

并像这样使用 jquery 提交表单:

function submitform()
{
var name=$('#name').val();
$('#variable').val(name);   // set the value of name field to the hidden field
$('form#form1').submit();   // submit the form
}

对于第二种形式,将id 添加到隐藏变量。

<form method='post'  action='https://....' name='form2'>
  <input type='hidden' name='variable' id='variable' value=''>
 <form>

您可以正常提交第二个表单。

在这种情况下,如果您重定向回 index.php,此方法将失败,因为一旦页面刷新/重新加载,隐藏字段值将被重置。在这种情况下,最好在 res.php 文件中通过 url 传递值:

$val=$_POST['name'];
header('Location: index.php?val='.$val);

并在 index.php 中访问隐藏字段中的值,例如:

<input type='hidden' name='variable' id='variable' value='<?php if(isset($_GET['val'])) echo $_GET['val']; ?> '>

【讨论】:

  • 是在提交form1吗??
  • 第一个表单已提交。
  • 这是因为,您正在从 res.php 重定向回 index.php。
  • 是的..但是我该如何解决呢?如果您知道解决方案,请提供帮助。
【解决方案2】:

在隐藏输入的 value 属性中:

<?=$_POST["name"];?>

您可能只想在 isset 返回 true 时回显该值。

【讨论】:

  • 永远不要在 php 中使用速记代码。使用
  • 当然,不过我现在正在使用移动设备。不使用短开放标签的真正原因是什么?
  • 感谢 Neel,但这些速记运算符在 php 中已被弃用,因此它将成为警告。我们称这种风格为 Servlet 风格
【解决方案3】:

试试这个 首先为表单放置一个id,然后尝试下面的代码

$( "#form1" ).submit(function( event ) {
  var valForm1 = $(this).find('input').val();
  $( "#form2").find('input').val(valForm1 );
});

可能是 get 和 set 值不正确,但我认为这个想法可行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多