簡體   English   中英

PHP通過URL傳遞變量

[英]PHP pass variable through URL

我理解PHP URL是如何工作的 - 我認為......但是我在獲取要在下面的示例中傳遞的變量的實際值時遇到了問題。

注意:我將以下表單添加到數據單元格中(作為通過PHP讀取的表的一部分)。

$currentrowid = 1;

echo '<td>
  <div class="editdelete">
    <form action="phpindex.php?page=edit&thisrow=<?php echo $currentrowid;?>" method="post">
      <input type="submit" value="Edit" >
    </form>
  </div>
</td>';

...用於讀取上述表單輸出的URL的其他部分代碼:

$val = $_POST['thisrow']; 
echo "the value is: " .$val; //Outputs "$currentrowid"

因此,正如您所看到的,代碼返回傳遞的變量的實際名稱 ,而不是傳遞的變量的值。

這里有什么想法?

由於您已經在PHP塊中,因此不應將變量包裝在<?php ... ?> 這會給你一個錯誤。

要使其工作,您可以選擇以下兩個選項中的一個:

1)字符串連接:

echo '... <form action="phpindex.php?page=edit&thisrow='.$currentrowid.'" method="post"> ...';

2)用" (雙引號)代替' (單引號)包裹你的字符串:

echo "... <form action=\"phpindex.php?page=edit&thisrow=$currentrowid\" method=\"post\"> ...";

請注意,第二種方法強制您轉義字符串中的所有雙引號。

2點。

  1. <form action="index.php?thisrow=<?php echo $currentrowid ?>" method="post">
  2. 你應該使用$ _POST而不是$ _GET來獲取post值。

如上所述,

<form action="index.php?thisrow=<?php echo $currentrowid; ?>" method="post">

是正確的。 這背后的原因是你逝去的HTML,你必須使用回聲 PHP輸出到HTML。 否則你只是得到你所放的東西,即$ currentrowid。

這不是最簡單的方法,而是解決問題的快捷方法。 將表單方法更改為get method="get"> ,然后

$val = $_GET['thisrow']; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM