iT邦幫忙

0

php 函數值的問題..

php
  • 分享至 

  • xImage


請問我在FOR迴圈那邊要怎麼寫,才可以在order.php裡面取得value呢??
我這樣寫可以跑,不過當下個頁面INSERT資料進去SQL的時候,
卻都只是空值,我也有試過用HIDDEN的方式寫,不過都ERROR
(+在45行)
echo "<INPUT TYPE="HIDDEN" name="cook" value="$row[cook]">";
echo "<INPUT TYPE="HIDDEN" name="money" value="$row[money]">";

拜託還沒睡的大大,幫我解答

fillano iT邦超人 1 級 ‧ 2009-04-26 10:17:00 檢舉
話說...「45行」?也沒看到你的code哩?你貼的圖也沒出來...

雖然目前看起來scottchen大大應該有點到問題。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
30
pcboy
iT邦大師 6 級 ‧ 2009-04-26 07:49:09
最佳解答

假設 buy.php 用 get 方式傳參數

<form action ="order.php" method ="get">
username: <input type="text" name="username" />
<input type ="submit" value="ok" />
</form>

在 order.php 就用 $_GET 取得參數

You are <?php echo $_GET["username"]?>.

*****************************************

假設 buy.php 用 post 方式傳參數

<form action ="order.php" method ="post">
username: <input type="text" name="username" />
<input type ="submit" value="ok" />
</form>

在 order.php 就用 $_GET 取得參數

You are <?php echo $_POST["username"]?>.

$row[cook]= 菜單 淡水阿給、紅燒魚 之類的...
$row[MONEY]= 100、200...

我使用
echo "<INPUT TYPE='HIDDEN' name='cook' value='$row[cook]'>";
echo "<INPUT TYPE='HIDDEN' name='money' value='$row[money]'>";

旦卻又發生了,傳到ORDER.PHP,卻都顯示同一個VALUE..
(Order.php-SQL語法)
$sql = "INSERT INTO cord (cord_cook, cord_money)
VALUES ('$cook', '$money')";

26
灌籃高手
iT邦高手 1 級 ‧ 2009-04-26 07:57:51

試試看

&lt;pre class="c" name="code">
echo "&lt;INPUT TYPE='HIDDEN' name='cook' value='$row[cook]'>";
echo "&lt;INPUT TYPE='HIDDEN' name='money' value='$row[money]'>";

比較保險的寫法

&lt;pre class="c" name="code">
echo "&lt;INPUT TYPE='HIDDEN' name='cook' value='". htmlspecialchars($row[cook]) . "'>";
echo "&lt;INPUT TYPE='HIDDEN' name='money' value='" . htmlspecialchars($row[money]) . "'>";

echo "<INPUT TYPE='HIDDEN' name='cook' value='$row[cook]'>";
echo "<INPUT TYPE='HIDDEN' name='money' value='$row[money]'>";

我使用這個寫法,
但是又有另外一個問題,我ACTION="order.php"雖然收到的道值,不過都是相同的值,
怎麼會這樣呢???

試試看
echo "<INPUT TYPE='HIDDEN' name='cook[]' value='$row[cook]'>";
echo "<INPUT TYPE='HIDDEN' name='money[]' value='$row[money]'>";

fillano iT邦超人 1 級 ‧ 2009-04-27 06:10:25 檢舉

hidden?你要跨網頁存取的話,是不是考慮把資料存在session裡面?

14
farfar
iT邦新手 5 級 ‧ 2009-04-27 09:15:04

先問一下你的php 的 register_globals 變數值是? (on/off)

16
wonton
iT邦高手 6 級 ‧ 2009-04-27 11:22:46

你學 php, 很多基本東西沒弄清楚, 尤其是單引號雙引號的使用.
一開始為什麼錯在 45 行, 就是因為 echo 後面都是雙引號的關係.

另外你會想說, get/post 後 action.php 收的值不正確, 不如先確定在 order.php 那邊你給的值到底對不對. (檢視網頁原始檔)

最後就是取值, 這個跟前面兩個大大講的有關, 如果 register_globals 是 on, 才可以直接取, 不然就要透過 $_GET ($HTTP_GET_VARS) / $_POST ($HTTP_POST_VARS) 才拿得到值, 至於為什麼, 書上應該都有寫.

另外雖然 php 很方便, 可以直接在引號裡放變數, 不過我還是建議不要偷覽, 寫正確的語法, 像

&lt;pre class="c" name="code">echo "&lt;INPUT TYPE='HIDDEN' name='cook' value='$row[cook]'>";

不如乖乖寫成

&lt;pre class="c" name="code">echo "&lt;INPUT TYPE='HIDDEN' name='cook' value='".$row["cook"]."'>";

至於 fillano 大大的 session 也是很好的辦法, 只是我猜可能又得卡在 session_start() 或 $_SESSION 那裡了....

我要發表回答

立即登入回答