2017-01-06 9 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と置き換えました。出力された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コード:今すぐ

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

、と

<?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>' 
?> 

、同じ問題が

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

で生じるであろううん、それはものの一つであります私は試してみましたが、私は同じ結果を得ました:-( – user3282173

+0

@ user3282173別の解決方法を試してみてください – Nerazzurri

+0

さて、その変更でTestの代わりにTest \を取得します。何らかの理由でstr_replace( "'"、 "'"、$ result_row [0])を実行しただけでは、str_replace( "'"、 "\'"、$ result_row [0] 「私の結果はTestIngです。だから私はこれが進歩だが、それほどではないと感じる。 – user3282173

関連する問題