繁体   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