我在PHP($_SESSION['playlist']['ID1'],$_SESSION['playlist']['ID2']等)中有一个多维会话数组,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);
}
}发布于 2015-01-21 07:42:14
它不像你想的那样工作。附加JQuery不会运行您的服务器端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});
});
});发布于 2015-01-21 07:42:44
您正在尝试将PHP函数附加到HTML中,这表明您不了解客户机-服务器模型是如何工作的。PHP是服务器端脚本,而JS和HTML是客户端:所以您需要做的是使用AJAX向服务器发送带有适当参数的请求。但首先,您必须了解PHP和JS是如何工作的。
https://stackoverflow.com/questions/28061727
复制相似问题