首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将特定Javascript变量传递给PHP

将特定Javascript变量传递给PHP
EN

Stack Overflow用户
提问于 2015-01-21 07:28:49
回答 2查看 108关注 0票数 1

我在PHP($_SESSION['playlist']['ID1']$_SESSION['playlist']['ID2']等)中有一个多维会话数组,ID作为值存储。在javascript中,可以通过按下按钮将值传递给PHP中的函数来删除这些值,告诉它通过匹配给定的ID和存储在数组中的ID从会话数组中删除该值。我不能让它起作用。我的JS发送了这个$(wrapper).append("<?php delVid('"+vidID+"');?> ");,但是PHP的行为就像JS发送了一个字符串,我认为引号无论如何都会使它起作用,但这是我获得变量甚至正确地传输到PHP的唯一方法。这是我的PHP函数

代码语言:javascript
复制
function delVid($id){
    foreach( $_SESSION['playlist'] as $key => $value ) {
            if($id == $value){
                unset( $_SESSION['playlist'][ $key ] );
            }
        sort($_SESSION['playlist'], SORT_NUMERIC);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-21 07:42:14

它不像你想的那样工作。附加JQuery不会运行您的服务器端PHP脚本。因此,它只是一个附加在wrapper上的字符串,从代码执行的角度来看,它没有任何意义。

要实现您想做的事情,您需要使用Ajax技术,它包括在不重新加载页面的情况下将数据传递给服务器。因此,您需要创建一个服务器端页面,该页面将接受$id参数并调用您的delVid函数。

代码语言:javascript
复制
// 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等有用的方法来实现它。

代码语言:javascript
复制
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});
  }); 
});
票数 2
EN

Stack Overflow用户

发布于 2015-01-21 07:42:44

您正在尝试将PHP函数附加到HTML中,这表明您不了解客户机-服务器模型是如何工作的。PHP是服务器端脚本,而JS和HTML是客户端:所以您需要做的是使用AJAX向服务器发送带有适当参数的请求。但首先,您必须了解PHP和JS是如何工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28061727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档