2013-08-30 46 views
0

我試圖根據其文本值將值歸於var。 我不能直接(通過我的表單)屬​​性的數值,因爲我也保存在我的數據庫中的文本值。PHP - 根據另一個var的值將值賦予var

$section = $_POST['section']; // required 
$page = $_POST['page']; // required 

if ($_POST['page'] == 'Template') { $Code == '00'; } 
elseif ($_POST['page'] == 'Menu') { $Code == '01'; } 
elseif ($_POST['page'] == 'Home Page') { $Code == '02'; } 
elseif ($_POST['page'] == 'About Us') { $Code == '03'; } 
elseif ($_POST['page'] == 'Contact Us') { $Code == '04'; } 

$Code_Page = $Code.''.$section; 

爲例,在首頁的第18條的代碼是0218.

我不明白爲什麼它不工作? 只保存第二部分($部分),而不是前兩個數字。

在此先感謝

+0

所以如果我可能會問,什麼是問題 – Satya

+0

對不起,我忘了問這個問題。爲什麼它不起作用?只有第二部分被保存($部分),而不是前兩個數字。 –

回答

0

添加$Code聲明第一

$section = $_POST['section']; // required 
$page = $_POST['page']; // required 
$Code = ''; // This was missing 

if ($_POST['page'] == 'Template') { $Code == '00'; } 
elseif ($_POST['page'] == 'Menu') { $Code == '01'; } 
elseif ($_POST['page'] == 'Home Page') { $Code == '02'; } 
elseif ($_POST['page'] == 'About Us') { $Code == '03'; } 
elseif ($_POST['page'] == 'Contact Us') { $Code == '04'; } 

$Code_Page = $Code.''.$section; 
+0

感謝您的幫助,先聲明我的var,然後刪除double equals解決了問題。我想我需要再讀一遍PHP手冊。 –

0

編輯:作者澄清了他現在是什麼。我保留原來的答案,因爲我覺得這是一個更好的解決方案。

要在PHP中定義變量,請使用單個等號(=)。您在定義$代碼時使用了兩個等號(==),這是一個comparison operator

原來的答覆:

我假設你想優化這些代碼。如果是這樣,我覺得最好的辦法是創建一個數組,或者從你提到的數據庫中提取數據。一旦你的數據集中在一個數組,你可以做一些簡單的檢查:

靜態數組方法:

$pages = array('Template' => '00', 'Menu' => '01', 'Home Page' => '02', 'About Us' => '03', 'Contact' => '04'); 
if (in_array($_POST['Page'], $pages)) 
{ 
    //We have a match, deal with output here 
    $Code_Page = $pages[$_POST['Page']].$section 
} 
else 
{ 
    //Output an error message here, the page isn't in the array 
} 
0

好像你所提供的代碼給你你正在尋找0218的主頁的代碼。我看到的唯一錯誤是你沒有分配$Code。你的$Code == '02'應該是$Code = '02'

+0

非常感謝你,雙倍平等並且根據@Satya的建議首先聲明的$ Code固定了我的問題。 –

+0

聲明是非常好的做法,但不應該打破你的代碼。恭喜 – surivitna