2017-05-31 45 views
1

我無法爲我的生活弄清楚這段代碼中的什麼是擺脫&。如果有人輸入像http://example.com/?ref=me&id=1這樣的URL,我需要將整個URL顯示在回顯中。但是它會在&之後切斷所有內容。我的代碼中的某些內容忽略了&符後面的所有內容

以下是正在使用的代碼。

HTML:

<div class="toolbar"> 
Enter the site URL that people will go to when they click your banner and click update to store it:<br> 
<input id="ban<?php echo $key;?>" type="text" value="" size="100">&nbsp;&nbsp;<input type="button" class="buttonHAdd" value="Update" onclick="updateBannerURL(&#39;<?php echo $directoryfile ;?>&#39;, &#39;ban<?php echo $key;?>&#39;)"><br> 
Use the following HTML to display the banner on your site:<br><span id="htmlban<?php echo $key;?>" style="background-color: #ffffff"></span> 
</div> 

腳本:

function updateBannerURL(bannerFile, id) { 

if($("#"+id).val() == "") { 
    alert("You have not entered a site url"); 
    return; 
} 
$.ajax({ 
    type: "POST", 
    url: "update.banner.php", 
    data:'m='+$('#memberId').val()+'&b='+bannerFile+'&u='+$("#"+id).val(), 
    dataType: 'json', 
    success: function(data, textStatus) { 
     $('#html'+id).text(data.bannerHtml); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     $('.workareaTip').html('Hmm... Looks like an error occurred.'); 
    } 
    }); 
} 

PHP文件update.banner.php

<?php 
$domain = 'https://example.com/banner'; 
$u = $_POST['u']; 
$b = $_POST['b']; 
$m = $_POST['m']; 
$array = array('bannerHtml'=> 
    '<a href="'.$u.'"><img src="'.$domain.'/banners/'.$m.'/'.$b.'" border=""/><a/>' 
    ); 
echo json_encode($array); 
?> 

與該代碼,我可以輸入:http://example.com/?ref=me&id=1這裏是什麼它迴應:http://example.com/?ref=me完全無視&符號後的所有內容。

+0

我建議你使用'數據:{M:$(「#MEMBERID」 ).val(),b:bannerFile,u:$(「#」+ id).val()}'。 – PiLHA

回答

4

您也需要進行編碼你在每個變量使用encodeURI()發送數據,或者只是將數據傳遞正確:

data: { 
    m: $('#memberId').val(), 
    b: bannerFile, 
    u: $("#"+id).val() 
}, 
+0

我不知道爲什麼這樣的作品,但它確實大聲笑。非常感謝你@Enstage –

+2

它的工作原理是因爲你之前手動執行它的方式,JavaScript或PHP都不能通過按照我的方式進行操作來判斷'&'是否是新變量或字符串的一部分,JavaScript編碼&符號,因此它被解析爲字符串的一部分。 另外,如果我的回答是正確的,請選擇投票箭頭下方的綠色標記以將其標記爲。 – Enstage

+1

太棒了。我確實檢查了綠色的勾號。我會在你寫這個之前,但它讓我等了6分鐘哈哈。無論如何,非常感謝你! –

相關問題