OK,我會保持這個短,我可以..基於數據庫記錄/調用的動態變量 - 幫助?
我想爲我的用戶營造一個真正可擴展的環境,因此讓他們..
1.定義一個新的選項(dshop_options_name)
2.在數據庫
這是爲了允許將被分配不同的值,並且還以任何組合定義選項值(dshop_options_values)
單獨的表。
好吧,腳本分成兩部分。表單頁面和結果頁面
form.php的(使用POST)
首先我需要根據分配到的產品的選項動態創建下拉列表,然後通過dshop_options_values表運行得到任何值分配給該選項
///////////////////////////////////////// /////////////////////////////////////////////////
$prod_prop_name=mysql_query("SELECT * FROM `dshop_options_name`");
$prod_prop_name_array= array();
while($data9=mysql_fetch_array($prod_prop_name)) {
$prod_prop_name_array[]=$data9;
}
foreach($prod_prop_name_array as $rowNum => $data9) {
$prod_prop_id=$data9[0];
$prod_prop_title=$data9[1];
$prod_prop_attri=mysql_query("SELECT * FROM `dshop_options_values` WHERE `prod_id`='".$selected_product."' AND `attri_name`='".$prod_prop_title."' ORDER BY `attri_value` ASC ");
$prod_prop_attri_array= array();
while($data10=mysql_fetch_array($prod_prop_attri)) {
$prod_prop_attri_array[]=$data10;
}
if(!$prod_prop_attri_array){}
else{
echo"<div class='left'>";
echo"$prod_prop_title\n";?>
<select name='<? echo $prod_prop_title?>'>
<option value="select">Select</option>
<?php
foreach($prod_prop_attri_array as $rowNum => $data10){
$itemname=$data10[2];
$itemvalue=$data10[3];
$itemprice=$data10[4];
if($itemprice<="0"){
echo"<option value='".$itemvalue."'>".$itemvalue."</option>\n";
}
else{
echo"<option value='".$itemvalue."'>".$itemvalue." - ".$currency_type.$itemprice."</option>\n";
}
}
echo"</select></br></br></div>";
}
}
////////////////////////////////////////////// ////////////////////////////////////////////
OK,正如你所看到的,我將選擇命名爲選項名稱,這樣我就可以使用該名稱再次調用下一個腳本中的值。
result.php
好了,到reasemble數據集和結果匹配到發佈的數據,我再次做了幾個電話,首先得到的所有數據。
////////////////////////////////////////////// ////////////////////////////////////////////
$prod_prop_name=mysql_query("SELECT * FROM `dshop_options_name`");
$prod_prop_name_array= array();
while($data9=mysql_fetch_array($prod_prop_name)) {
$prod_prop_name_array[]=$data9;
}
foreach($prod_prop_name_array as $rowNum => $data9){
$option_id=$data9[0];
$option_name=$data9[1];
$varnval=$_REQUEST[$option_name];
echo"$varnval"; // did we get a result?
$results = array();
if(!$varnval | $varnval=="select"){}
else{
$results[] = $option_name."-".$varnval;
$optpricesum_query=mysql_query("SELECT * FROM `dshop_options_values` WHERE `attri_name`='".$option_name."' AND `attri_value`='".$varnval."'");
$optpricesum_result=mysql_fetch_array($optpricesum_query);
$optpricesum=$optpricesum_result[4];
}
if(!$varnval | $varnval=="select"){}
else{
for ($i=0;$i<=0;$i++){$options.=$results[$i]." | ";}
}
}
///////////////////////////////////////////////// /////////////////////////////////////////
OK,下至問題...
在form.php的,我張貼動態創建的值,基本上是由管理員用戶。
比方說他們創造一個選項「foo」的,並且這些值「foo1」,「foo2的」,「foo3」(在管理區域)
form.php的通過交叉構建選擇引用的兩個表,名稱選擇,然後進行填充(沒有什麼是預先定義的)
則終端用戶到達在前端的形式,並且上發佈的形式,他們選擇了「foo3」
在result.php首先沒有任何東西_REQUEST
(記得我們沒有什麼可以定義的),直到它重建了可能已經發布的可能的變量。 然後我使用foreach來運行所有存儲的選項名稱,然後創建動態變量...
$varnval = $_REQUEST[$option_name];
然後我過濾掉沒有被貼有名字..
if(!$varnval | $varnval=="select"){}
...
本地我得到的值「foo3」沒問題,但不是在網絡服務器。然後我注意到,當使用本地php(Xampp)值甚至不需要定義$ var = $ _ POST ['var'];它仍然會工作....調試時很煩人!但是,無論如何,這個腳本都會起作用。
我在$varnval $_REQUEST
之後放置了一個echo
,但沒有顯示。
在我看來,$_REQUEST
沒有得到變量,無論是因爲解析還是因爲我錯過了一些東西。
我花了好幾天的時間研究這個問題,嘗試了很多不同的方法,但所有的主題都無處可尋。
也許我想不可能的,但我覺得必須有創建一組單獨從數據庫記錄變量的方式(約不是相反,因爲大多數的搜索似乎產生)
這是我的在這裏第一篇文章,所以我道歉,如果它是在錯誤的地方!
我感謝你在任何幫助