У меня есть этот цикл, который генерирует ссылки для выпадающего списка.
$count = count($this->contents);
for($i = 0; $i < $count; $i++)
{
$this->ret .= "<a onclick='changeFDD(" . strval($this->contents[$i]) . ")'>" . $this->contents[$i] . "</a>";
}
Это приводит к следующему списку
<div id="fddContentID" class="fddContent">
<a onclick="changeFDD(Mr.)">Mr.</a>
<a onclick="changeFDD(Mrs.)">Mrs.</a>
<a onclick="changeFDD(Ms.)">Ms.</a>
</div>
Проблема в том, что мне нужно, чтобы параметры были строками.Я бы предположил, что strval мог бы выполнить это.
Когда я просто пытаюсь вставить одинарные кавычки, это немного сбрасывает структуру.
PHP с одинарными кавычками
$this->ret .= "<a onclick='changeFDD('" . strval($this->contents[$i]) . "')'>" . $this->contents[$i] . "</a>";
Возвращенный результат HTML
<div id="fddContentID" class="fddContent">
<a onclick="changeFDD(" mr.')'="">Mr.</a>
<a onclick="changeFDD(" mrs.')'="">Mrs.</a>
<a onclick="changeFDD(" ms.')'="">Ms.</a>
</div>
Я понимаю, почему результат таков, что я не понимаю, как я могу инкапсулировать эту переменную, чтобы Javascript обрабатывал ее правильно.
Дополнительная чуть более подробная информация
Я работаю над конструктором форм в PHP, и я создал собственное выпадающее окно, используя кнопку и div, которые я контролирую его видимостью с помощью Javascript и CSS.В этом раскрывающемся списке каждый элемент является ссылкой.
Когда вы нажимаете на ссылку, запускается функция Javascript changeFDD (nVal)
function changeFDD(nVal) {
document.getElementById("fddBtnID").value = nVal;
alert("test");
}
nVal соответствует новому значению, которое будет иметь кнопка.
Когда я генерируюэтот выпадающий список, метод, который перебирает массив, отображает эти ссылки, единственная проблема в том, что у меня возникают проблемы с инкапсуляцией переменной в кавычки, так как в этой области уже столько цитат.Я попробовал несколько функций, таких как strval и приведение его в виде строки, но результаты остались прежними.
Вот схема раскрывающегося списка
<div class="FDDWrap">
<button onclick="fddDrop()" id="fddBtnID" class="fddBtn">Mr.</button>
<div id="fddContentID" class="fddContent">
<a onclick="changeFDD(Mr.)">Mr.</a>
<a onclick="changeFDD(Mrs.)">Mrs.</a>
<a onclick="changeFDD(Ms.)">Ms.</a></div>
</div>
Любые и все рекомендации или критика приветствуются.Если вы видите потенциально вредные привычки, не стесняйтесь жарить меня.