【问题标题】:passing form input name through hyperlink通过超链接传递表单输入名称
【发布时间】:2016-01-19 16:55:52
【问题描述】:

我正在尝试将输入标签值传递到另一个页面,以简单地将 qty 的值与价格相乘并返回更新后的价格。问题是当我使用 get 方法传递 qty 的值时,它只传递了 qty 的值但不传递其他值。

cart.php

echo" <form method='get' name='form1' action='update_cart.php?id={$id}&name={$name}&price={$price}&qty=$_GET['qty']'>";//the problem comes here.

echo"<input type='number' name='qty' max='10'>
    <input type='submit' value='update'></form>";

update_cart.php

$id = isset($_GET['id']) ? $_GET['id'] : "";
$name = isset($_GET['name']) ? $_GET['name'] : "";
$qty=isset($_GET['qty'])? $_GET['qty']: "";
$price=isset($_GET['price'])? $_GET['price']: "";

$price=$price*$qty;
header('Location: cart.php?action=quantity_updated&id=' . $id . '&name=' . $name . '&price='.$price . '&qty='.$qty);

当我在给 qty 一个值后单击更新按钮时,它会显示类似这样的内容。

http://localhost/abc/cart.php?action=quantity_updated&id=&name=&price=0&qty=2

【问题讨论】:

  • 您的表单发送到 update_cart.php,但显示的是 Cart_Update.php,并且您的网址是 cart.php ...??
  • @Andrew 我已经编辑了我的问题。问题是当我更新 cart.php 的值时,它会将值传递给 update_cart.php,然后在计算价格后返回到 cart.php 并更新价格。

标签: php html pdo


【解决方案1】:

此行的语法包含错误。

echo" <form method='get' name='form1' action='update_cart.php?id={$id}&name={$name}&price={$price}&qty=$_GET['qty']'>";

改成...

echo" <form method='get' name='form1' action='update_cart.php?id=".$id."&name=".$name."&price=".$price."&qty=".$_GET['qty']."'>";

【讨论】:

    【解决方案2】:

    如果你想传递一些值,你可以选择两种方式:

    您可以在表单中使用隐藏类型的输入。 如果您使用隐藏类型输入,您可以只在一页上使用数据。

    <form method='get' action='?????'>
    <input type='hidden' name='?????' value='?????'>
    <input type='hidden' name='?????' value='?????'>
    ....
    ...
    ..
    <input type='number' name='qty' max='10'/>
    <input type='submit' value='submit'/>
    </form>
    

    您可以使用 session 来保存数据并在另一个页面中使用它。 如果您使用会话,则可以在所有 php 页面中使用数据。 在第 1 页:

    <?php
    session_start();
    $_SESSION['name']='value';
    ?>
    

    在第 2 页:

    <?php
    session_start();
    echo $_SESSION['name']; // value
    ?>
    

    【讨论】:

    • 我可以使用这个会话变量来通过链接吗?就像说..`action='update_cart.php?id={$id}&name={$name}&price={$price}&qty=$_SESSION['qty']'>`
    • @tabia session 是一个很好的方法,可以在应用程序的所有部分(例如登录信息、购物车等)中保存您需要的数据,可以很好地使用隐藏输入用于传输数据...
    • 好的!我试过会议。但是当我将一个数字作为会话值传递时,它会完美地打印在另一页上!!但是当我尝试$_Session['qty']=$_Post['qty'] 时它不起作用!!
    【解决方案3】:

    form method="get" 自动传递变量。

    您确实(并且可以)不需要将查询字符串附加到 action 属性。

    但是,如果使用 &lt;input type="hidden" name="qty" value="&lt;?=$qty?&gt;" /&gt; 样式,您确实需要在表单中表示这些数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 2021-08-04
      • 2015-03-01
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      相关资源
      最近更新 更多