Hola yo creo que simplemente puedes enviar por post o pof get
Por ejemplo por get
?mode=delete&item=id
Código PHP:
if($_GET['mode']=="delete" && $_GET['item']!="" && is_array($_SESSION['carro'][$_GET['item']]))
unset($_SESSION['carro'][$_GET['item']]);
Si quieresd hacerlo por ajax ya tiene más tela sería algo asi:
Código PHP:
<td id="borra<?php unset($v['idp']);?>"><a href="JavaScript:borra('<?php unset($v['idp']);?>')">Borrar</a></td>
<script>
//esta función sólo una vez no la pongas dentro del foreach sino antes o despues...
function borra(num)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "borra.php?mode=delete&item=" +num, true);
xmlhttp.send();
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var xml = xmlhttp.responseXML;
dato=xml.getElementsByTagName("datos");
if(dato[0].firstChild.nodeValue=="1")
{
//borramos td
document.getElementById('borra' +num).innerHTML="";
}
}
}
}
</script>
Y el php que recibe:
Código PHP:
<?php
session_start();
header('Content-Type: text/xml');
$xml="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
$xml.="<respuesta>\n";
if($_GET['mode']=="delete" && $_GET['item']!="" && is_array($_SESSION['carro'][$_GET['item']]))
{
unset($_SESSION['carro'][$_GET['item']]);
$xml.="<datos><![CDATA[1]]></datos>\n";
}
else
{
$xml.="<datos><![CDATA[0]]></datos>\n";
}
$xml.="</respuesta>\n";
print $xml;
?>
No sé si he cometido algún error, pero en fin con ajax es crear un id en el elemento td para poder borrar, en href del enlace llamar a una función javascript que comunica con un script en php llamado borrar.php, al que se le pasa por get un numero con el id del array a borrar y un mode.
Si se puede borrar porque el indice a borrar existe se devuelve por xml un 1 y javascript borra el contenido del td
Salu2 ;)