簡體   English   中英

將特定的Javascript變量傳遞給PHP

[英]Passing specific Javascript variable to PHP

我在PHP中有一個多維會話數組( $_SESSION['playlist']['ID1']$_SESSION['playlist']['ID2'] ETC),其ID存儲為值。 在javascript中,可以通過按一下按鈕將其刪除,該按鈕會將值中繼給PHP中的一個函數,以告訴它通過匹配給定ID和存儲在數組中的ID從會話數組中刪除該值。 我無法使它正常工作。 我的JS正在發送此$(wrapper).append("<?php delVid('"+vidID+"');?> "); 但是PHP的行為就像JS發送一個字符串一樣,我認為引號會使它正常工作,但這是我獲取變量甚至將其正確傳輸到PHP的唯一方法。 這是我的PHP函數

function delVid($id){
    foreach( $_SESSION['playlist'] as $key => $value ) {
            if($id == $value){
                unset( $_SESSION['playlist'][ $key ] );
            }
        sort($_SESSION['playlist'], SORT_NUMERIC);
    }
}

它不像您想象的那樣工作。 用JQuery附加HTML不會運行您的服務器端PHP腳本。 因此,這只是附加到wrapper的字符串,從代碼執行的角度來看,這沒有任何意義。

為了完成您想做的事情,您需要使用Ajax技術,該技術包括在不重新加載頁面的情況下將數據傳遞到服務器。 因此,您需要創建一個服務器端頁面,該頁面將接受$id參數並調用delVid函數。

// ajaxScript.php (pseudo code)
// I don't know what framework and routing scheme are you using,
// so just a raw code to show an idea

<?php       

function delVid($id) {
    foreach($_SESSION['playlist'] as $key => $value) {
        if($id == $value) {
            unset($_SESSION['playlist'][$key]);
        }
        sort($_SESSION['playlist'], SORT_NUMERIC);
    }
}

delVid($_POST['id']);

然后,您需要編寫JS代碼,以便在某些事件下對該頁面執行Ajax請求。 JQuery具有$.ajax$.get$.post這樣有用的方法來實現它。

jQuery(document).ready(function($){ 
  $(document).on("click",".remove", function(){ 
    var vidID = $(this).parent('div').parent('div').attr('id');             
    $(this).parent('div').parent('div').fadeOut();
    $.post('/ajaxScript.php', {id:vidId});
  }); 
});

您試圖將HTML函數附加到HTML,這表明您不了解客戶端服務器模型的工作方式。 PHP是服務器端腳本,而JS和HTML是客戶端端:因此,您要做的就是使用AJAX通過適當的參數向服務器發送請求。 但是首先,您必須了解PHP和JS的工作方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM