2012-04-10 9 views
0

Ich habe den folgenden Code. Ich versuche, ausgewählte Elemente zu verfolgen und sie aus dem Array anzuzeigen.PHP-Array keine Elemente?

<?php 
session_start(); 

//temp stores the submitted value 
$temp = $_POST['field']; 

if (!isset($_SESSION['itemsList'])) { 
    $itemsList = array(); 
} else { 
    $itemsList = $_SESSION['itemsList']; 
} 

//check how many elements in array 
$arraySize = count($itemsList); 

//set that as i and then add after that 
$emptyval = ""; 

if (strcmp($temp,$emptyval)!=TRUE) { 
    array_splice($itemsList, $arraySize+1, 0, $temp); 
    unset($temp); 
    unset($_SESSION['field']); 
    $_SESSION['itemList'] = $itemList; 
} 
?> 
<html> 
<head> 
    <title>Test Page Khalid</title> 
</head> 
<body> 
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post"> 

    <table height="100%" width="100%" cellspacing="10" cellpadding="10" border="1"> 
     <tr> 
      <td align="center"><input name="field" value="shirt" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="pants" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="socks" style="width:200px; height:100px;" type="submit"/></td> 
     <tr> 
     <tr> 
      <td align="center"><input name="field" value="dress" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="skirt" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="topbody" style="width:200px; height:100px;" type="submit"/></td> 
     <tr> 
     <tr> 
      <td align="center"><input name="field" value="sheets" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="pillowcover" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="blanket" style="width:200px; height:100px;" type="submit"/></td> 
     <tr>   
    </table> 
</form> 
<br><br><br> 
<?php 
$itemsReturned = $_SESSION['itemList']; 
echo "The items stored are: <br>"; 
print_r($itemsReturned); 
?> 

</body> 
</html> 

Eine Idee, warum dies nichts anzeigt? Danke,

+0

Was meinst du mit ‚nichts anzeigt‘? Kommt überhaupt nichts? – Gricey

+0

Durch Aktivieren der Fehlerberichterstattung können Benutzer mehr Hilfe bereitstellen. – Jim

+0

Probieren Sie die alltäglichen Debugging-Sachen aus, und liefern Sie dann diese Information: Geht es in den IF-Block, wo es die Variable setzt? Wenn ja, wie hoch ist der Wert unmittelbar nach dem Setzen? Wie wäre es direkt nach dem IF-Block ... etc. – Dave

Antwort

2

Ist das, was Ihr zu erreichen versuchen:

<?php 
session_start(); 
//store submitted value 
$val = $_POST['field']; 
//create a reference to the session 
$items = (!isset($_SESSION['items']) ? array() : $_SESSION['items']); 

//did the user submit a value? 
if($val){ 
//append the value to the items array, contained within the session 
    $_SESSION['items'][] = $val; 
//update the reference 
    $items =& $_SESSION['items']; 
} 

?> 
<html> 
<head> 
    <title>Test Page Khalid</title> 
</head> 
<body> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 

    <table height="100%" width="100%" cellspacing="10" cellpadding="10" border="1"> 
     <tr> 
      <td align="center"><input name="field" value="shirt" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="pants" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="socks" style="width:200px; height:100px;" type="submit"/></td> 
     <tr> 
     <tr> 
      <td align="center"><input name="field" value="dress" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="skirt" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="topbody" style="width:200px; height:100px;" type="submit"/></td> 
     <tr> 
     <tr> 
      <td align="center"><input name="field" value="sheets" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="pillowcover" style="width:200px; height:100px;" type="submit"/></td> 
      <td align="center"><input name="field" value="blanket" style="width:200px; height:100px;" type="submit"/></td> 
     <tr>   
    </table> 
</form> 
<br><br><br> 
<?php 
echo "The items stored are: <br>"; 
print_r($items); 
?> 

</body> 
</html> 

Können Sie ausführlich über den Zweck der folgenden Dokumente vorlegen:

$emptyval = ""; 

if (strcmp($temp,$emptyval)!=TRUE) { 
    array_splice($itemsList, $arraySize+1, 0, $temp); 
    unset($temp); 
    unset($_SESSION['field']); 
    $_SESSION['itemList'] = $itemList; 
} 
+0

Ich stimme auch mit Travestie3 überein, wenn man den Superglobal $ _SERVER ['PHP_SELF'] benutzt, muss es maskiert werden. – trickyzter

+0

Nun, ich überprüfe, ob temp nicht leer ist "". Wenn es nicht ist, dann fügen Sie Temp-Wert zum Array im nächsten freien Slot (Index), und speichern Sie die ItemsList zu Sitzung –

+0

Das funktionierte und tat genau das, was ich wollte ... Danke: D –

Verwandte Themen