我正在使用一個非常基本的隨機名稱生成器。生成器工作得很好,並通過HTML表單提交按鈕調用。現在,在用戶想要保存名稱的情況下,我將有第二個按鈕,它將調用PHP郵件操作向該名稱發送電子郵件。在添加郵件功能之前,我只是試圖將變量存儲在某個地方,以便我可以提醒它並驗證是否可以控制它。在以下代碼中,$ field2是由$ id_num定位的名稱,它等於$ search_str。然後我嘗試和分配$ FIELD2全局變量$ nameContainer:爲PHP全局變量賦值以提醒
<body>
<?
$nameContainer = "Mary";
?>
<?
function loadName() {
global $nameContainer;
if(!empty($_POST['act'])) {
$lineNum = rand(1, 5189);
$search_str = $lineNum;
$lines = file('names_girls_5189_origin.csv');
foreach($lines as $line){
list($id_num, $field2, $field3, $field4)=explode(",",$line);
$nameContainer = ($id_num == $search_str) ? "$field2" : "";
echo ($id_num == $search_str) ?
"<table style= 'height: 100%;'>
<tr style='width: 100%; height= '200px';'>
</tr>
<center><span class='myText' style='color: white; font-size: 48px;'>$field2</span>
<span style='color: #E8C8D5; font-size: 36px'>Smith</span><br/>
<span class='myText' style='color: #2E7B4D; font-size: 24px;'>Origin: $field3</span><br/>
<span class='myText' style='color: #2E7B4D; font-size: 24px;'>Meaning: $field4</span></center>
</table>" : "";
}
}
}
loadName();
?>
<script type="text/javascript">
function alertName() {
alert("<? getName(); ?>");
}
</script>
<?
function getName() {
global $nameContainer;
echo $nameContainer;
}
?>
<center><form action="index.php" method="post">
<input type="hidden" name="act" value="run" />
<p><input type="submit" value="New" /></p>
</form>
</center>
<center><button onclick="alertName()">Alert</button></center>
</body>
看來我的問題從$ nameContainer =($ ID_NUM == $ SEARCH_STR)莖? 「$ field2」:「」;因爲$ nameContainer = $ field2;工作,但分配在csv最後的名字,而不是匹配搜索字符串。我意識到這裏可能存在一些基本的邏輯,所以任何幫助都是值得讚賞的!
更新(樣本CSV):
ID,Name,Origin,Meaning
1,Aaliyah,"Arabic, Hebrew","high exalted, to ascend"
2,Akala,Aboriginal,A parrot.
3,Alba,Aboriginal,A sand hill. Also see Albina.
5188,Zelma,,A divine helmet. From the name Anselma. Also see Salima.
5189,Zola,,Life.`
右:'回聲 「ID_NUM:」 $ ID_NUM 「SEARCH_STR:」。$ SEARCH_STR;'另外,爲什麼是$ field2在該行上的引號? – mkaatman 2013-03-05 01:08:43
你確定每一行的第一個數據是一個數字,並且這些數字填充了區間[1,5189]? – 2013-03-05 01:16:57
@Lewyx是的,我自己編譯了csv。第一列填入ID號碼,後面跟着更新的OP,名稱,來源和含義。數字從1開始排除第一行。 – JTEngland 2013-03-05 03:25:59