我正在尝试将输入标记值传递到另一个页面,只需将qty的值与price相乘并返回更新后的价格。问题是当我使用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
答案 0 :(得分:0)
form method="get"
自动传递变量。
您可以(并且可以)不需要将查询字符串附加到action
属性。
但是,如果使用<input type="hidden" name="qty" value="<?=$qty?>" />
样式,则需要在表单中表示这些数据。
答案 1 :(得分:0)
如果你想传递一些值,你可以选择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>
您可以使用会话保存数据并在另一个页面中使用它。 如果使用会话,则可以在所有php页面中使用数据。 在第1页:
<?php
session_start();
$_SESSION['name']='value';
?>
第2页:
<?php
session_start();
echo $_SESSION['name']; // value
?>
答案 2 :(得分:0)
此行的语法包含错误。
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']."'>";
快乐的编码!