Foros del Web » Programando para Internet » PHP »

Eliminar Elemento Array

Estas en el tema de Eliminar Elemento Array en el foro de PHP en Foros del Web. Espero Que Me Puedan Ayudar Tengo Este Condigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php session_start ( ) ; ?> <html> <title>Pedidos Actuales</title> <head>   ...
  #1 (permalink)  
Antiguo 21/09/2012, 12:30
Avatar de DRANIX  
Fecha de Ingreso: abril-2010
Mensajes: 24
Antigüedad: 14 años
Puntos: 1
Pregunta Eliminar Elemento Array

Espero Que Me Puedan Ayudar

Tengo Este Condigo:
Código PHP:
Ver original
  1. <?php
  2. ?>
  3. <html>
  4. <title>Pedidos Actuales</title>
  5. <head>
  6.     <link href="img_bottom/Map.ico" type="image/x-icon" rel="shortcut icon"/>
  7.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8.     <link href="styles.css" rel="stylesheet" type="text/css"/>
  9. <style type="text/css">
  10. .tit {
  11.  font-family: Verdana, Arial, Helvetica, sans-serif;
  12.  font-size: 9px;
  13.  color: #FFFFFF;
  14. }
  15. .prod {
  16.  font-family: Verdana, Arial, Helvetica, sans-serif;
  17.  font-size: 11px;
  18.  color: #333333;
  19.  text-transform:uppercase;
  20.  
  21. }
  22. h1 {
  23.  font-family: Verdana, Arial, Helvetica, sans-serif;
  24.  font-size: 17px;
  25.  color: #990000;
  26. }
  27. h3{
  28. font-family:Verdana, Arial, Helvetica, sans-serif;
  29. font-size: 17px;
  30. color:#990000;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <?php
  36. if(isset($_POST['ttbxOrdenCompra'])){
  37. $_SESSION['pedidos_actuales'][]=array("pedido"=> $_POST['ttbxPedido'], "ordenc"=> $_POST['ttbxOrdenCompra'],
  38. "cliente"=> $_POST['ttbxCliente'], "obser"=> $_POST['ttbxObservaciones']);
  39. }
  40. ?>
  41. <div id="divSecond" style="text-align:center">
  42.     <a href="Pedido.php" class="LabelStyle" style="color:blue">Pedido</a>
  43.     <span class="LabelStyle">&nbsp;/&nbsp;Pedidos Actuales</span>
  44. </div>
  45. <br>
  46. <table width="650" border="0" cellspacing="0" cellpadding="0" align="center">
  47. <tr bgcolor="#333333" class="tit">
  48.     <td align="center">Pedido</td>
  49.     <td align="center">Orden De Compra</td>
  50.     <td align="center">Cliente</td>
  51.     <td align="center">Observaciones</td>
  52.     <td align="center">Borrar</td>
  53.     <td align="center">A-Detalles</td>
  54. </tr>
  55. <form action="carrito.php" method="POST">
  56. <input type="hidden" name="quitar">
  57. <?php
  58. $color=array("#E2D6C2","#F6EDD8");
  59. $contador=0;
  60. if(isset($_SESSION['pedidos_actuales'])){
  61. foreach($_SESSION['pedidos_actuales'] as $clave => $pedidos){
  62. $contador++;
  63.     echo "<tr bgcolor=".$color[$contador%2]." class='prod'>";
  64.     echo "<td width='50' align='center'>".$pedidos['pedido']."</td>";
  65.     echo "<td width='100' align='center'>".$pedidos['ordenc']."</td>";
  66.     echo "<td width='50' align='center'>".$pedidos['cliente']."</td>";
  67.     echo "<td width='120' align='center'>".$pedidos['obser']."</td>";
  68.     echo "<td width='40' align='center'>";
  69. ?>
  70.     <a href="dcar.php?<?php echo SID ?>&orden=<?php echo $clave ?>"><img src='img_bottom/borrar.gif' border='0' title='Borrar'></a></td>
  71. <?php
  72.     echo "<td width='50' align='center'><input type='button' value='A-Detalles'></input></td>";
  73.     echo "</tr>";      
  74. }
  75.     }else{
  76. ?>
  77. </table>
  78. <?php
  79.     echo "<br>";
  80.     echo "<center class='prod'>No Existen Pedidos Actualmente</center>";
  81. }
  82. ?>
  83. </form>
  84. </body>
  85. </html>

Lo Que Hace Este Codigo Es Recibir Por El Metodo Post Los Valores que Almcenado En Un Array Dentro De Una Sesion Hasta Y Todo Bien.. Lo que NO Puedo Hacer Es Eliminar Un Elemnto Del Array... Es Que Siento Que El Array Esta Mal Planteado Espero Que Me Puedan Ayudar...

Ya Intente Con Unset($_SESSION['pedidos_actuales']['ordenc']);

Y No Me LO Borra.
  #2 (permalink)  
Antiguo 21/09/2012, 12:53
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Eliminar Elemento Array

hace esto:

echo '<pre>';
print_r($_SESSION);
echo '</pre>';

y mostranos el resultado
  #3 (permalink)  
Antiguo 21/09/2012, 13:19
Avatar de DRANIX  
Fecha de Ingreso: abril-2010
Mensajes: 24
Antigüedad: 14 años
Puntos: 1
Respuesta: Eliminar Elemento Array

Código PHP:
Ver original
  1. (
  2.     [pedidos_actuales] => Array
  3.         (
  4.             [0] => Array
  5.                 (
  6.                     [pedido] =>
  7.                     [ordenc] => 5644
  8.                     [cliente] => 120
  9.                     [obser] => PROBANDO
  10.                 )
  11.  
  12.             [1] => Array
  13.                 (
  14.                     [pedido] =>
  15.                     [ordenc] => 45165
  16.                     [cliente] => 120
  17.                     [obser] => PRUEBA BORRADO
  18.                 )
  19.  
  20.         )
  21.  
  22. )
  #4 (permalink)  
Antiguo 21/09/2012, 15:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Eliminar Elemento Array

unset($_SESSION['pedidos_actuales']['ordenc']); no funciona por la forma del array

Pero por lo mismo, sería algo más complejo decidir cuál elemento borrar, ya que el borrado se haría así:

unset($_SESSION['pedidos_actuales'][0]);

Pero necesitas primero saber cuál indice borrar.

Código PHP:
Ver original
  1. foreach($_SESSION['pedidos_actuales'] as $i =>$p)//recorred el array
  2.    if($p['ordenc']=='45165')//si ordenc es igual al que queremos borrar
  3.       unset($_SESSION['pedidos_actuales'][$i]);//borramos

Etiquetas: html, javascript, mssql, mysql, xhtml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:33.