0

ajax経由でphpページに送信する前に、jqueryで複数のURLをエンコードする方法と、phpページでデコードする方法を教えてください。

html は次のとおりです。

<form method="post">
<textarea id="multiple_url"></textarea>
<button id="check_url">Check</button>
</form>

<div id="Check_result"></div>

ここにjqueryがあります:

$('#check_url').click(function(){

var multiple_url = $('#multiple_url').val();

$.ajax({  
type: "POST",  
url: "urls.php",  
data: multiple_url=' +multiple_url,
success: function(results) {  
$('div#Check_result').html(results);
}
});

}

urls.php は次のとおりです。

$multiple_url = $_POST['multiple_url'];

echo $multiple_url;

次のように投稿すると、テキストエリアに表示されます。

http://yahoo.com
http://facebook.com
http://google.com

次の出力が得られます。

http://yahoo.com http://facebook.com http://google.com

しかし、私がこのように投稿すると:

http://yahoo.com
https://www.facebook.com/photo.php?fbid=540632575958397&set=a.215213765166948.56326.100000349796150&type=1&theater
http://google.com

以下に示すように、壊れた出力が得られました。

http://yahoo.com https://www.facebook.com/photo.php?fbid=540632575958397

ここで起こっていることは"&"、URL の後に続くすべてを無視していることです。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

data文字列ではなく、オブジェクトを渡します。

data: { multiple_url: $('#multiple_url').val() }

その後、jQuery がデータのエスケープを処理します。

于 2013-01-03T12:45:32.727 に答える