我想要在<option>
標記中獲取文本以及其值。從<option>獲取文本使用PHP標記
例
<select name="make">
<option value="5"> Text </option>
</select>
我用$_POST['make'];
和我得到的值5
但我想同時獲得價值和文本。
我該如何使用PHP?
我想要在<option>
標記中獲取文本以及其值。從<option>獲取文本使用PHP標記
例
<select name="make">
<option value="5"> Text </option>
</select>
我用$_POST['make'];
和我得到的值5
但我想同時獲得價值和文本。
我該如何使用PHP?
將文本的值設置爲選項標記的值,通過靜態HTML標記或者即使它由服務器端腳本生成。您只需將通過POST獲取的價值屬性
另一種選擇然而,在服務器端,是映射值(「5」),關聯數組,即
<?php
$valueTextMap = array("5" => "Text");
$value = $_POST['make']; //equals 5
$text = $valueTextMap[$value]; //equals "Text"
?>
你需要包括在值文本開始(如:<option value="5_Text"> Text </option>
,然後解析,或...
你可以使用JavaScript的網頁上提交的文本作爲POST操作的另一個PARM
在。爲了使用PH來獲得標籤和價值P,你需要將這兩個參數作爲值的一部分。
例如:
<select name="make">
<option value="Text:5"> Text </option>
</select>
PHP代碼
<?php
$parts = $_POST['make'];
$arr = split(':', $parts);
print_r($arr);
輸出:
Array(
[0] => 'Text',
[1] => 5
)
這是做這件事。
這是怎麼回事?我認爲這是最好的解決方案,因爲您已將字段分隔到每個數據。只有一個隱藏字段會在每次更改時更新並避免硬編碼映射。
這裏面HTML:
<select name='make' onchange="setTextField(this)">
<option value = '' selected> None </option>
<option value = '5'> Text 5 </option>
<option value = '7'> Text 7 </option>
<option value = '9'> Text 9 </option>
</select>
<input id="make_text" type = "hidden" name = "make_text" value = "" />
<script type="text/javascript">
function setTextField(ddl) {
document.getElementById('make_text').value = ddl.options[ddl.selectedIndex].text;
}
</script>
這裏面PHP:
<?php
$value = $_POST["make"];
$text = $_POST["make_text"];
?>
謝謝你這行'document.getElementById('make_text')。value = ddl.options [ddl.selectedIndex] .text;' – robert
我一直用了一個很優雅的解決方案,類似於已經介紹的那些,這並不需要很多的附加代碼。
HTML
<select name="make">
<option value="1:First Option">First Option Text</option>
<option value="2:Second Option">Second Option Text</option>
<option value="3:Third Option Text">Third Option Text</option>
</select>
PHP這種方法的
$value = split(':', $make)[0];
$text = split(':', $make)[1];
優勢
是的,有一定的相似之處serialworm的答案,但我們儘量減少我們的PHP代碼通過不顯眼地轉換爲數組並選取元素來阻止馬上要求。
在我的情況下,我在聯繫表單中使用了這個確切的短代碼,其中這一行代碼(以獲取選定的部門名稱)對於保持代碼清潔至關重要。
對於這件事的所有迴應,我認爲這是最優雅的一個。將這樣做 –