Я работаю над генератором случайных имен. Генератор отлично работает и вызывается кнопкой отправки формы 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, а не тот, который соответствует строке поиска. Я понимаю, что, вероятно, есть какая-то базовая логика, которую я здесь отсутствует, поэтому любая помощь приветствуется!
Update (образец 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.`
Прямо перед строкой $ nameContainer вы можете вставить результаты: 'эхо "ID_NUM:" $ ID_NUM "SEARCH_STR:"... $ SEARCH_STR,' Кроме того, почему это $ field2 в кавычки на этой строке? – mkaatman
Вы уверены, что первые данные на каждой строке являются числом и что эти числа заполняют интервал [1,5189]? –
@ Lewyx Да, я сам собрал csv. Первый столбец заполняется идентификационными номерами, а затем имя, происхождение и значение, например обновленный OP. Число начинается с 1, чтобы исключить первую строку. – JTEngland