1

我要在我的网站上制作编辑菜单。所以我将页面从产品引导到编辑页面。我感到困惑的是如何从产品页面获取产品 ID 以在编辑页面中使用?这是我在产品中的代码

<?php $query= "SELECT * FROM game";
$rs = mysql_query($query);
while($data = mysql_fetch_array($rs)) { ?>
<div class="gameBox">
    <div style="margin:5px;">
        <?php echo "<image src=\"images/".$data['gameId'].".png\" alt=\"gameImage\" </image>"?>
        <div class="cleaner"></div>
        <div class="myLabel">Name</div><div>: <?php echo $data['gameName'];?></div>
        <div class="myLabel">Developer</div><div>: <?php echo $data['gameDeveloper']; ?></div>
        <div class="myLabel">Price</div><div>: $ <?php echo $data['gamePrice']; ?></div>
        <br />
        <a href="edit.php" <?php $id=$data['gameId'];?>><input type="button" value="Edit"/></a>
        <a href="<!-- Delete -->"><input type="button" value="Delete"/></a>
    </div>
</div>
<?php } ?>

这是我在编辑页面中的代码

<?php include("connect.php");
$id[0] = $_REQUEST['id'];
$query = "SELECT * FROM game WHERE gameId=".$id."";
$rs = mysql_query($query);
while($data = mysql_fetch_array($rs)) { ?>
    <form action="doUpdate.php" method="post">
        <?php echo "<image src=\"images/".$id.".png\" alt=\"gameImage\" </image>"?>
        <div class="cleaner"></div>
        <div class="myLabel">Name</div><div>: <input type="text" value="<?php echo $data['gameName'];?>" id="gameName" name="gameName"/></div>
        <div class="myLabel">Developer</div><div>: <input type="text" value="<?php echo $data['gameDeveloper'];?>" id="gameDeveloper" name="gameDeveloper"/></div>
        <div class="myLabel">Price</div><div>: <input type="text" value="<?php echo $data['gamePrice'];?>" id="gamePrice" name="gamePrice"/></div>
        <br/>
        <div id="txtError">
        <!--error message here-->
        </div>
        <input type="submit" value="Submit"/>
        <a href="product.php"><input type="button" value="Cancel"/></span></a>
<?php } ?>

当我尝试访问编辑页面时,出现错误提示

"Undefined index:$id[0] = $_REQUEST['id'];" 

在编辑页面中。有人可以帮我吗?

4

3 回答 3

2

看起来您混淆了在<a href...>s 中的页面、表单和查询字符串之间传递数据的两种方法。

表格

数据在<input>-type 元素(或朋友)和<form...>标签内。

例如

<form action="handler.php">
    <input type="text" name="var1" />
    <input type="text" name="var2" />
    <input type="submit">
</form>

通常通过 POST 传递并在 PHP 中通过$_POST.

例如,上面引用的文本框中的值可以通过以下方式访问:

<?php
echo $_POST['var1'];  // First text box
echo $_POST['var2'];  // Second text box

链接

在 中作为查询字符串传递<a href...>,例如:

<a href="http://www.yoursite.com/index.php?var1=foo&var2=bar">Click Me</a>

通常通过 GET 传递并在 PHP 中通过$_GET.

例如,上面提供的查询字符串中的值可以通过类似的方式访问

<?php
echo $_GET['var1'];  // "foo"
echo $_GET['var2'];  // "bar"

所以在这种情况下,看起来你正在超链接一个输入按钮——这不是通常的做事方式,但你可以通过改变它来修复它:

<a href="edit.php" <?php $id=$data['gameId'];?>><input type="button" value="Edit"/></a>

至,这

<a href="edit.php?id=<?php echo $data['gameId'];?>"><input type="button" value="Edit"/></a>

然后将 edit.php 中的变量引用为$_GET['id'].

但既然你知道它将是一个整数,没有别的,就像:

$id = (int)$_GET['id'];

足够好的卫生设施(至少对于那个变量)。

最后,我注意到您将变量分配给$id[0]然后引用$id。将变量分配给$id[0]与将其分配给不同$id$id前者是数组,后者是整数。在我看来,您可以将[0]wrt$id放到您的 edit.php 中

于 2012-05-05T03:31:08.143 回答
1

将 id 作为参数添加到您的编辑 url:

<a href="edit.php?id=<?php echo $data['gameId'];?>"><input type="button" value="Edit"/></a>

也在你的edit.php的顶部:

$id = $_REQUEST['id'];
于 2012-05-05T03:26:39.793 回答
1

您可以通过查询字符串

<a href="edit.php?<?php $id=$data['gameId'];?>>

在这种情况下,您的 PHP 代码将更改为

$id[0] = $_SERVER['QUERY_STRING'];
于 2012-05-05T03:28:41.603 回答