可能重复:
如何在JavaScript中编码URL?
我正在尝试使用以下代码将url发送到php代码,但是当url包含&a = 12&b = 4时,一旦我在php代码中获得“ a”变量的值,地址的最后一部分就会被删除。
url = http://www.example.com/help.jpg?x=10&a=12&b=4 但我在php文件中获得的url是http://www.example.com/help.jpg?x= 10(&a = 12&b = 4已删除,我知道原因是javascript,ajax将其与url地址混合在一起,不知道它只是一个值,但不知道如何解决)
function upload(url){
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("output").innerHTML= xmlhttp.responseText;
}
}
xmlhttp.open("GET","Photos.php?a="+url,true);
xmlhttp.send();
}
if(isset($_GET["a"]))
{
$Address = $_GET["a"];
echo $Address;
}
Run Code Online (Sandbox Code Playgroud)
输出为>>>“ http://www.example.com/help.jpg?x=10 ”,但应为http://www.example.com/help.jpg?x=10&a=12&b=4
该Photo.php文件应显示一条消息.
但是当我添加?page=2到地址时它不会调用Photos函数来打开Photo.php文件.
function Photos() {
var opt = <?php echo $_GET['page'];?>
alert(opt);
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Results").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","Photo.php?page="+opt,true);
xmlhttp.send();
}
function showCat(option){
....
}
<?php
if(isset($_GET['page'])){
echo '<script type="text/javascript">'
,'myPhotos();'
, '</script>';
}
echo 'Results go here';
?>
Run Code Online (Sandbox Code Playgroud)
photo.php
if(isset($_GET["page"])){
echo "photo";
}
Run Code Online (Sandbox Code Playgroud)