2017-01-06 129 views
0

我试图从HTML到jQuery传递一个变量,带有撇号的名字。值到jQuery时,字符串缺少撇号后的所有字符。jQuery删除从HTML到jQuery字符串后的撇号字符

名称示例:Test'Ing

这是表格的一部分。我动态填充列表,并从数据库中抽取当名称显示正确:

<?php echo "<select id='hiringManager' class='dropdown_form' name='hiringManager'>"; 
    echo "<option disabled selected>Hiring Manager</option>"; 
     while ($result_row = mysqli_fetch_row($hiring_manager_query)) { 
      echo "<option value='" . $result_row[0] . "'>" . $result_row[0] . "</option>"; 
     } 
echo "</select>" ?> 

然后我从表格中获得的价值,并在jQuery的模态显示进行确认:

$('#hiringManagerModal').text($('#hiringManager').val()); 

的显示结果的文本是:

“测试”,而不是

我身边有戳,但一直没能找到解决此一职位“Test'Ing”,我也可以不要在搜索中正确表达问题。

任何帮助表示赞赏。谢谢!

回答

2

问题出在PHP代码上。我用" s和" s代替' s,代替' s。在输出HTML早些时候,

<select id='hiringManager' class='dropdown_form' name='hiringManager'> 
<option disabled selected>Hiring Manager</option> 
<option value='test'ing'>test'ing</option> <!-- In this option, the value is test instead of test'ing --> 
</select> 

现在所有的更换后,这是,

<select id="hiringManager" class="dropdown_form" name="hiringManager"> 
<option disabled selected>Hiring Manager</option> 
<option value="test'ing">test'ing</option><!-- Now, here the value is test'ing, as required --> 
</select> 

真正发生的是遇到'时,该字符串被终止,因此只有“测试“被输出而不是”测试“。

全部替换后的修正PHP代码:

<?php 
echo '<select id="hiringManager" class="dropdown_form" onchange="displayInModal();" name="hiringManager">'; 
echo '<option disabled selected>Hiring Manager</option>'; 
while ($result_row = mysqli_fetch_row($hiring_manager_query)) { 
    echo '<option value="' . $result_row[0] . '">' . $result_row[0] . '</option>'; 
} 
echo '</select>' 
?> 

用,

$('#hiringManagerModal').text($('#hiringManager').val()); 

现在,同样的问题将与

<option value="test"ing"></option> 
+0

是啊,这是一件事发生我尝试过,并得到相同的结果:-( – user3282173

+0

@ user3282173尝试使用替代解决方案。 – Nerazzurri

+0

好吧,随着这一变化,我得到了测试\而不是测试。出于某种原因,如果我只是执行'str_replace(“'”,“'”,$ result_row [0]),它不会喜欢'str_replace(“'”,“\'”,$ result_row [0])中的\ '我的结果是TestIng。所以我觉得这是进步,但不是那样。 – user3282173