Част 1 може да е доста лесна:'a''b'
е алтернатива за 'a\'b'
и следователно означава същото. UI съм сигурен, че в заявките ще бъде върнат правилният низ, за разлика от дефиницията на таблицата.
За част 2 Недрет Реджеп ви е дал верния отговор. Освен това се чудя как
echo "<option value='".$imgClass_row[imgClass]."'>"
може някога да доведе до
<option value="Robin" s'="">
. По-скоро очаквам
<option value='Robin's'="">
което очевидно е грешно, но може да бъде решено с htmlspecialchars()
.
РЕДАКТИРАНЕ:Намерих възможно обяснение:тук може да бъде обвинен HTML анализаторът на браузъра. С
<select id="s" onchange="alert(document.getElementById('s').innerHTML + ' value:' + document.getElementById('s').value)">
<option value='Robin's'>a</option>
<option value='Robin's'>b</option>
</select>
Получавам с Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
с опция a
и
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
с опция b
. Но той е след анализиране и повторно сглобяване и очевидно не е кодът, генериран от PHP. И дори тогава, къде е en axcess '
в <option value="Robin" s'="">
.