嗨,这是我的问题:我将html表单中的值发布到php页面,我正在以这种方式阅读
<?php
$id = $_REQUEST['id'];
?>
一切都是对的。无论如何,我需要使用if(isset($_POST['submit']))
更改我的代码,当我尝试在此if语句中执行插入查询时,$ id为空。这是代码:
$id = $_REQUEST['id'];
echo $id ; // this prints the right value
if(isset($_POST['submit_2'])) {
$user = "cardatabase";
$password = "";
$host = "";
$database = "my_cardatabase";
$connessione = mysql_connect($host, $user, $password);
@mysql_select_db($database, $connessione) or die( "Unable to select database");
echo $id ; // this prints nothing
$query = "INSERT INTO myTab (Client) VALUES ('".$id."')";
mysql_query($query);
mysql_close();
注意我知道查询是正确执行的,因为我有一些在我的数据库中创建的其他auto_increment属性。 我也试图以这种方式将$ id声明为全局变量
global $id;
$id = $_REQUEST['id'];
但仍然在“if”内部为空 和
$GLOBALS['id'] = $_REQUEST['id'];
if(...){
$query = "INSERT INTO myTab (Client) VALUES ('".$GLOBALS['id']."')";
}
但也不起作用。
编辑: HTML格式
<form id="myForm" action="myPage.php" method="post">
<input type="hidden" name="id" value="<?php $id?>">
<input type="submit" name="Submit" value="Go" id="fbutton" /> <br />
</form>
编辑2:
回答你的问题。
这个表单在我的page1.html中
然后在我的.php中我有另一个html表单,这是if(isset($_POST['submit']))
for,而不是上面发布的那个(即包含$ id值的那个)
我的问题是,我从第一个表单获得的值在控制第二个表单的if语句中丢失。
编辑3: 这个php页面中的第二个表单
<form action="myPage.php" method="post">
<label for="name">Model :</label><input type="text" name="model" /> <br />
<input type="submit" name="submit_2" value="Go" /> <br />
</form>
WorkdFlow
第1页:登录表单 - 获取id的值并传递给第2页
第2页:获取id值并存储在$ id中,有一个按钮(例如“插入到db”)导致第3页,创建一个表单将$ id(作为隐藏输入)传递给第3页
第3页:创建一个新表单,让用户在数据库中插入某种数据并提交。在这里,我需要存储我在第2页中插入的$ id的值,以及从最后一个表单中获取的值
答案 0 :(得分:0)
你的if语句是否通过了条件且id没有显示,
尝试将你的if改为
if(isset($_POST['Submit'])) {
请注意提交中的大S
而非s
,因为名称中的敏感案例。
你的身份证据你说你已经正常地回应了它,但更好的是为什么要在这样的价值中回应它:
<input type="hidden" name="id" value="<?php echo $id ; ?>">
编辑:
要防止从两个表单中读取,请尝试更改按钮提交名称之一
像那样 <input type="submit" name="second_Submit" value="Go" id="fbutton" />
然后使用此if if statment:
if(isset($_POST['second_Submit'])) {
<强> EDIT2:强>
1页:
请
session_start(); //------put this in very top of page.
$_SESSION['myid'] = $id ;
第3页:
像那样追回它
session_start(); //------put this in very top of page.
echo $_SESSION['myid'] ;
你不需要在第2页传递这个id。
您的查询将是
$query = "INSERT INTO myTab (Client) VALUES ('".$_SESSION['myid']."')";
答案 1 :(得分:0)
您需要添加echo
<input type="hidden" name="id" value="<?php echo $id; ?>">
答案 2 :(得分:0)
尝试更改条件如下。
if(isset($_POST['submit'])) {
应该是
if(isset($_POST['Submit'])) {
隐藏字段中的和echo $id
。
<input type="hidden" name="id" value="<?php echo $id; ?>">
根据您在问题中粘贴的示例,您忘记在echo $id // this prints nothing
语句中使用分号。我希望你在代码中正确使用它。