[英]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.