2013-11-23 41 views
0

book.php中比賽插入場與動態插入文本框的數量

<input type="text" id="total_seats" name="total_seats" value="" readonly /></td> 

view.php

<?php 
    $serial_no = 1; 
$seats = explode(',', $_SESSION['total_seats']); 
foreach ($seats as $seat) { ?> 
<tr> 
    <td> <?php echo $serial_no++; ?></td> 
     <td><?php echo $seat; ?> </td> 
      <td><input type="text" name="passenger_name[]" style="border:1px solid #000;" required /></td> 

     </tr> 

在book.php中頁上,total_seats包含插入座位數通過複選框,此代碼運行完全正常,但當我檢查3複選框& total_seats包含3個座位號,其顯示4個文本字段以及序列號高達4在我的view.php頁面..我如何匹配我的座位號碼r與我的輸入total_seats沒有一個額外的字段..

在此先感謝。

+0

能否請您進一步解釋' total_seats包含通過複選框插入的席位數量我相信這是您的錯誤所在。 – amaster

+0

看我是一個在線預訂網站,當我chekc一個chek box的複選框沒有顯示在現場total_seats –

+0

你可以分享你是如何填充$ _SESSION ['total_seats'] – Devesh

回答

0

檢查這種東西在你的情況發生(在字符串的結尾多了一個「」),所以你到底有額外的一個空元素:

$seats = explode(".", "a,b,c,d,"); 

print_r($seats); 

Array 
(
    [0] => a 
    [1] => b 
    [2] => c 
    [3] => d 
    [4] => 
) 

編輯:更新與解決方案針對這種情況 - 使用rtrim()刪除最後一個逗號

$total_seats = $_SESSION['total_seats']; 
$seats = explode(',', rtrim($total_seats, ",")); // cut trailing commas 
foreach ($seats as $seat){ 
    .. below are the same 
+0

所以,首先打印出你的$ _SESSION ['total_seats'],然後添加代碼以擺脫最後的','(如果是這樣的話)。 –

+0

我得到了你的觀點......我有一個額外的逗號,這就是爲什麼m得到1額外的權利? –

+0

你能寫代碼嗎? –

0

我90%肯定的是,這裏的問題是與total_seats contains the number of seats inserted through checkboxes代碼的其餘部分應該工作,因爲它主張。我認爲你正在做的是將#,添加到您檢查的每個複選框的total_seats值。隨着爆炸,如果你有四個值和4個逗號,例如"1,2,3,4,"那麼你將有五個值:

array(5) { 
    [0]=> 
    string(1) "1" 
    [1]=> 
    string(1) "2" 
    [2]=> 
    string(1) "3" 
    [3]=> 
    string(1) "4" 
    [4]=> 
    string(0) "" 
} 

確保不包括你的最後一個座位#後,最後一個逗號

+0

耶是最後一個逗號我mgetting額外的領域..我怎麼能刪除? –