2013-07-06 28 views
-2

我有一個用戶在表單中輸入一個值,onClick()激活一個函數,該函數將用戶粘貼的URL剪下來(使用我製作的算法,但這是無關緊要的)。我最終得到了11個字符的字符串,我不知道如何將它提交給提交給我的數據庫的php頁面。我現在做的方式現在需要瀏覽器到一個新的頁面,我希望用戶留在同一頁面上。如何在不打開新頁面的情況下將javascript變量傳遞給php

function findvideoid(){ 
    window.location.href = 'submitvid.php?videoID=' + videoID; 
} 
+0

AJAX,使用AJAX ... – mishik

+0

使用AJAX ....... – ComFreek

+0

** [jQuery Ajax ^](http://api.jquery.com/jQuery.ajax/)** – CodeAngry

回答

-2

您可以在jQuery中很容易地做到這

$.ajax({ 
    type: "POST", 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 
+0

也是,你不能返回所有的html。 – ioanb7

+0

爲什麼downvote?我認爲這是完美的方式 –

+0

@AkseliKoskinen我不能說downvoters,但你假設OP已經使用jQuery或想要包括它。 – ComFreek

-1

使用Ajax:

function findvideoid() 
{ 
    var html = $.ajax({ 
    type: "POST", 
    url: "submitvid.php", 
    data: "videoID=" + videoID, 
    async: false 
    }).responseText; 

    if(html == "success") 
    {  
    // Uncomment the following line in your application 
    //return true; 
    } 
    else 
    {  
     return false; 
    } 
} 
+4

'未捕獲的ReferenceError:$沒有被定義'jQuery不是標準的 – VeXii

+0

@VeXii我希望它是:-) –

+1

@JanDvorak讓你開心,你不控制ecmagroup然後:) – VeXii

3

純JavaScript解決方案(建議):

var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function() { 
    if (xhr.readyStatus == 4) { // finished 
    if (xhr.status == 200) { // 200 HTTP code returned by server 
    } 
    else { // error 
    } 
    } 
}; 
xhr.open("GET", "your-script.php?videoID=" + encodeURIComponent(videoID)); 
xhr.send(null); 

jQuery的解決方案(建議,如果您已經在您的項目或i中使用了jQuery F你想嘗試一下):

// PHP script can access $_GET['videoID'] 
jQuery.get("your-script.php?videoID=" + encodeURIComponent(videoID)); 

// PHP script can access $_POST['videoID'] 
jQuery.post("your-script.php", {videoID: videoID}); 

jQuery.get(url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ])

jQuery.post(url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ])

+2

舊IE瀏覽器 – Petah

+2

@Petah你是說,像IE7和老一點?你真的想支持這些嗎? –

+3

即使IE 7支持它!請參閱[這裏](http://msdn.microsoft.com/en-us/library/ms537505(v = vs.85).aspx)!這是沒有理由downvote。 – ComFreek

2

約與外部HTML資源的加載掩蓋實際的AJAX調用什麼?
如果沒有真正的回調,您可以將iframe注入到指向指定url的文檔中,然後將其從文檔中刪除。

這裏的訪問由加載圖像屏蔽後端的API URL的一個例子:

function findvideoid(id, callback){ 
    var img = new Image(); 
    img.onload = callback; 
    img.src = apiUrl + '?videoId=' + encodeURIComponent(id) 
       + '&antiCache=' + new Date().getTime(); 
} 

沒有AJAX。沒有其他的庫。谷歌做它的分析。你爲什麼不應該?

+0

瀏覽器緩存URI可能是不可能的? – ComFreek

+0

真的嗎?爲此贊成嗎?請參閱更新:現在瀏覽器永遠不會緩存網址。 –

+0

**我沒有downvote你**!我剛剛評論過,因爲我(我們)不知道OP的具體用例。 – ComFreek

相關問題