2011-03-19 61 views
0

我有一些php代碼正在創建一個html表格。在它裏面我有一個表單,我有不同的下拉菜單,它們有onChange事件。我需要傳入javascript函數的錶行索引。有沒有辦法做到這一點?如果可以,請舉個例子。謝謝!如何將錶行索引傳遞給javascript函數

我的PHP代碼列表如下:

<?php 
echo" 
    <table id='inputTable'> 
    <form id='trade' name='trade' method='post' action=''> 
    <tr id = 'labelRow0' name = 'labelRow0' style='display:table-row'> 
     <td>Spread Type</td> 
     <td>Option/Future</td> 
     <td>Year</td> 
     <td>Month</td> 
     <td>Strike</td> 
     <td>Call/Put</td> 
     <td>Buy/Sell</td> 
     <td>Price</td> 
     <td>Quantity</td> 
     <td>Delta</td> 
     <td>House</td> 
    </tr> 
    <tr id = 'inputRow0' name = 'inputRow0' style='display:table-row'> 
     <td> 
     <select onchange='testChanges(0)' name='spreadType[]' id='spreadType0'> 
     <option value=''> 
     <option value='Spread'>Spread 
     <option value='Fly'>Fly 
     <option value='Straddle'>Straddle 
     <option value='Strangle'>Strangle 
     <option value='Tree'>Tree 
     <option value='Condor'>Condor 
     <option value='Ladder'>Ladder 
     </select> 
     </td> 
     <td> 
     <select name='optionFuture[]' id='optionFuture0'> 
     <option value=''> 
     <option value='Option'>Option 
     <option value='Future'>Future 
     </select> 
     </td> 
     <td> 
     <select name='year[]' id='year0'> 
     <option value=''> 
     <option value='Front'>Front 
     <option value='Short'>Short 
     <option value='Red'>Red 
     <option value='Green'>Green 
     <option value='Blue'>Blue 
     <option value='Gold'>Gold 
     </select> 
     </td> 
     <td> 
     <select name='month[]' id='month0'> 
     <option value=''> 
     <option value='January'>January 
     <option value='February'>February 
     <option value='March'>March 
     <option value='April'>April 
     <option value='May'>May 
     <option value='June'>June 
     <option value='July'>July 
     <option value='August'>August 
     <option value='September'>September 
     <option value='October'>October 
     <option value='November'>November 
     <option value='December'>December 
     </select> 
     </td> 
     <td> 
     <select name='strike[]' id='strike0'> 
     <option value=''> 
     <option value='100'>100 
     <option value='99'>99 
     <option value='98'>98 
     <option value='97'>97 
     <option value='96'>96 
     </select> 
     </td> 
     <td> 
     <select onchange='testChanges()' name='callPut[]' id='callPut0'> 
     <option value=''> 
     <option value='Call'>Call 
     <option value='Put'>Put 
     </select> 
     </td> 
     <td> 
     <select name='buySell[]' id='buySell0'> 
     <option value=''> 
     <option value='Buy'>Buy 
     <option value='Sell'>Sell 
     </select> 
     </td> 
     <td> 
     <input type='text' name='price[]' id='price0' size='9'/> 
     </td> 
     <td> 
     <input type='text' name='quantity[]' id='quantity0' size='9'/> 
     </td> 
     <td> 
     <input type='text' name='delta[]' id='delta0' size='9'/> 
     </td> 
     <td> 
     <select onchange='testChanges()' name='house[]' id='house0'> 
     <option value=''> 
     <option value='001 - First Options'>001 - First Options 
     <option value='020 - Bache'>020 - Bache 
     <option value='033 - FC Stone'>033 - FC Stone 
     <option value='Other'>Other 
     </select> 
     </td> 
    </tr> 
    <tr id = 'otherRow0' name = 'otherRow' style='display:none'> 
     <td><input type='text' name='spreadFormation[]' id='spreadFormation0' size='9'/></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type='text' name='otherHouse[]' id='otherHouse0' size='22'/></td> 
    </tr>"; 

$baseLabel = 'labelRow'; 
$baseInput = 'inputRow'; 
$baseStr = 'otherRow'; 
$baseOptionFuture = 'optionFuture'; 
$baseYear = 'year'; 
$baseMonth = 'month'; 
$baseStrike = 'strike'; 
$baseCallPut = 'callPut'; 
$baseBuySell = 'buySell'; 
$baseSpreadType = 'spreadType'; 
$basePrice = 'price'; 
$baseQuantity = 'quantity'; 
$baseDelta = 'delta'; 
$baseHouse = 'house'; 
$baseSpreadFormation = 'spreadFormation'; 
$baseOtherHouse = 'otherHouse'; 

for ($i = 1; $i < 20; $i++) 
{ 
    $labelId = $baseLabel.$i; 
    $inputRow = $baseInput.$i; 
    $otherId = $baseStr.$i; 
    $optionFutureId = $baseOptionFuture.$i; 
    $yearId = $baseYear.$i; 
    $monthId = $baseMonth.$i; 
    $strikeId = $baseStrike.$i; 
    $callPutId = $baseCallPut.$i; 
    $buySellId = $baseBuySell.$i; 
    $spreadTypeId = $baseSpreadType.$i; 
    $priceId = $basePrice.$i; 
    $quantityId = $baseQuantity.$i; 
    $deltaId = $baseDelta.$i; 
    $houseId = $baseHouse.$i; 
    $spreadFormationId = $baseSpreadFormation.$i; 
    $otherHouseId = $baseOtherHouse.$i; 

    echo" 
    <tr id = $labelId name = $labelId style='display:none'> 
     <td>Spread Type</td> 
     <td>Option/Future</td> 
     <td>Year</td> 
     <td>Month</td> 
     <td>Strike</td> 
     <td>Call/Put</td> 
     <td>Buy/Sell</td> 
     <td>Price</td> 
     <td>Quantity</td> 
     <td>Delta</td> 
     <td>House</td> 
    </tr> 
    <tr id = $inputRow name = $inputRow style='display:none'> 
     <td> 
     <select onchange='testChanges()' name='spreadType[]' id='spreadType0'> 
     <option value=''> 
     <option value='Spread'>Spread 
     <option value='Fly'>Fly 
     <option value='Straddle'>Straddle 
     <option value='Strangle'>Strangle 
     <option value='Tree'>Tree 
     <option value='Condor'>Condor 
     <option value='Ladder'>Ladder 
     </select> 
     </td> 
     <td> 
     <select name='optionFuture[]' id=$optionFutureId> 
     <option value=''> 
     <option value='Option'>Option 
     <option value='Future'>Future 
     </select> 
     </td> 
     <td> 
     <select name='year[]' id=$yearId> 
     <option value=''> 
     <option value='Front'>Front 
     <option value='Short'>Short 
     <option value='Red'>Red 
     <option value='Green'>Green 
     <option value='Blue'>Blue 
     <option value='Gold'>Gold 
     </select> 
     </td> 
     <td> 
     <select name='month[]' id=$monthId> 
     <option value=''> 
     <option value='January'>January 
     <option value='February'>February 
     <option value='March'>March 
     <option value='April'>April 
     <option value='May'>May 
     <option value='June'>June 
     <option value='July'>July 
     <option value='August'>August 
     <option value='September'>September 
     <option value='October'>October 
     <option value='November'>November 
     <option value='December'>December 
     </select> 
     </td> 
     <td> 
     <select name='strike[]' id=$strikeId> 
     <option value=''> 
     <option value='100'>100 
     <option value='99'>99 
     <option value='98'>98 
     <option value='97'>97 
     <option value='96'>96 
     </select> 
     </td> 
     <td> 
     <select onchange='testChanges()' name='callPut[]' id=$callPutId> 
     <option value=''> 
     <option value='Call'>Call 
     <option value='Put'>Put 
     </select> 
     </td> 
     <td> 
     <select name='buySell[]' id=$buySellId> 
     <option value=''> 
     <option value='Buy'>Buy 
     <option value='Sell'>Sell 
     </select> 
     </td> 
     <td> 
     <input type='text' name='price[]' id=$priceId size='9'/> 
     </td> 
     <td> 
     <input type='text' name='quantity[]' id=$quantityId size='9'/> 
     </td> 
     <td> 
     <input type='text' name='delta[]' id=$deltaId size='9'/> 
     </td> 
     <td> 
     <select onchange='testChanges()' name='house[]' id = $houseId> 
     <option value=''> 
     <option value='001 - First Options'>001 - First Options 
     <option value='020 - Bache'>020 - Bache 
     <option value='033 - FC Stone'>033 - FC Stone 
     <option value='Other'>Other 
     </select> 
     </td> 
    </tr> 
    <tr id = $otherId name = $otherId style='display:none'> 
     <td><input type='text' name='spreadFormation[]' id=$spreadFormationId size='9'/></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type='text' name='otherHouse[]' id=$otherHouseId size='22'/></td> 
    </tr> 
    "; 
} 
echo "</table> 
    <input id='submitButton' type='submit' name='submit' type='submit' value='submit' /> 
    </form>"; 
?> 
+0

我已經把一個ID與​​元素的行號,這樣我就可以很容易地確定我是在哪一行。 – 2011-03-19 02:43:57

+0

那麼我如何將它傳遞給我的函數呢? – 2011-03-19 02:47:52

回答

1

林使用到Zend的,所以這是多麼我通常做它,呼應的HTML isntead,只需鍵入出來的HTML,然後使用<?for:?>語法。如下所示。

<table id='inputTable'> 
    <form id='trade' name='trade' method='post' action=''> 
    <tr id = 'labelRow0' name = 'labelRow0' style='display:table-row'> 
     <td>Spread Type</td> 
     <td>Option/Future</td> 
     <td>Year</td> 
     <td>Month</td> 
     <td>Strike</td> 
     <td>Call/Put</td> 
     <td>Buy/Sell</td> 
     <td>Price</td> 
     <td>Quantity</td> 
     <td>Delta</td> 
     <td>House</td> 
    </tr> 
    <tr id = 'inputRow0' name = 'inputRow0' style='display:table-row'> 
     <td> 
     <select onchange='testChanges()' name='spreadType[]' id='spreadType0'> 
     <option value=''> 
     <option value='Spread'>Spread 
     <option value='Fly'>Fly 
     <option value='Straddle'>Straddle 
     <option value='Strangle'>Strangle 
     <option value='Tree'>Tree 
     <option value='Condor'>Condor 
     <option value='Ladder'>Ladder 
     </select> 
     </td> 
     <td> 
     <select name='optionFuture[]' id='optionFuture0'> 
     <option value=''> 
     <option value='Option'>Option 
     <option value='Future'>Future 
     </select> 
     </td> 
     <td> 
     <select name='year[]' id='year0'> 
     <option value=''> 
     <option value='Front'>Front 
     <option value='Short'>Short 
     <option value='Red'>Red 
     <option value='Green'>Green 
     <option value='Blue'>Blue 
     <option value='Gold'>Gold 
     </select> 
     </td> 
     <td> 
     <select name='month[]' id='month0'> 
     <option value=''> 
     <option value='January'>January 
     <option value='February'>February 
     <option value='March'>March 
     <option value='April'>April 
     <option value='May'>May 
     <option value='June'>June 
     <option value='July'>July 
     <option value='August'>August 
     <option value='September'>September 
     <option value='October'>October 
     <option value='November'>November 
     <option value='December'>December 
     </select> 
     </td> 
     <td> 
     <select name='strike[]' id='strike0'> 
     <option value=''> 
     <option value='100'>100 
     <option value='99'>99 
     <option value='98'>98 
     <option value='97'>97 
     <option value='96'>96 
     </select> 
     </td> 
     <td> 
     <select onchange='testChanges()' name='callPut[]' id='callPut0'> 
     <option value=''> 
     <option value='Call'>Call 
     <option value='Put'>Put 
     </select> 
     </td> 
     <td> 
     <select name='buySell[]' id='buySell0'> 
     <option value=''> 
     <option value='Buy'>Buy 
     <option value='Sell'>Sell 
     </select> 
     </td> 
     <td> 
     <input type='text' name='price[]' id='price0' size='9'/> 
     </td> 
     <td> 
     <input type='text' name='quantity[]' id='quantity0' size='9'/> 
     </td> 
     <td> 
     <input type='text' name='delta[]' id='delta0' size='9'/> 
     </td> 
     <td> 
     <select onchange='testChanges()' name='house[]' id='house0'> 
     <option value=''> 
     <option value='001 - First Options'>001 - First Options 
     <option value='020 - Bache'>020 - Bache 
     <option value='033 - FC Stone'>033 - FC Stone 
     <option value='Other'>Other 
     </select> 
     </td> 
    </tr> 
    <tr id = 'otherRow0' name = 'otherRow' style='display:none'> 
     <td><input type='text' name='spreadFormation[]' id='spreadFormation0' size='9'/></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type='text' name='otherHouse[]' id='otherHouse0' size='22'/></td> 
    </tr>"; 
<?php 
$baseLabel = 'labelRow'; 
$baseInput = 'inputRow'; 
$baseStr = 'otherRow'; 
$baseOptionFuture = 'optionFuture'; 
$baseYear = 'year'; 
$baseMonth = 'month'; 
$baseStrike = 'strike'; 
$baseCallPut = 'callPut'; 
$baseBuySell = 'buySell'; 
$baseSpreadType = 'spreadType'; 
$basePrice = 'price'; 
$baseQuantity = 'quantity'; 
$baseDelta = 'delta'; 
$baseHouse = 'house'; 
$baseSpreadFormation = 'spreadFormation'; 
$baseOtherHouse = 'otherHouse'; 
?> 

<?php for ($i = 1; $i < 20; $i++) :?> 
<?php 
    $labelId = $baseLabel.$i; 
    $inputRow = $baseInput.$i; 
    $otherId = $baseStr.$i; 
    $optionFutureId = $baseOptionFuture.$i; 
    $yearId = $baseYear.$i; 
    $monthId = $baseMonth.$i; 
    $strikeId = $baseStrike.$i; 
    $callPutId = $baseCallPut.$i; 
    $buySellId = $baseBuySell.$i; 
    $spreadTypeId = $baseSpreadType.$i; 
    $priceId = $basePrice.$i; 
    $quantityId = $baseQuantity.$i; 
    $deltaId = $baseDelta.$i; 
    $houseId = $baseHouse.$i; 
    $spreadFormationId = $baseSpreadFormation.$i; 
    $otherHouseId = $baseOtherHouse.$i; 
?> 

    <tr id = <?= $labelId ?> name = <?= $labelId ?>style='display:none'> 
     <td>Spread Type</td> 
     <td>Option/Future</td> 
     <td>Year</td> 
     <td>Month</td> 
     <td>Strike</td> 
     <td>Call/Put</td> 
     <td>Buy/Sell</td> 
     <td>Price</td> 
     <td>Quantity</td> 
     <td>Delta</td> 
     <td>House</td> 
    </tr> 
    <tr id = <?= $inputRow ?> name = <?= $inputRow ?>style='display:none'> 
     <td> 
     <select onchange='testChanges()' name='spreadType[]' id='spreadType0'> 
     <option value=''> 
     <option value='Spread'>Spread 
     <option value='Fly'>Fly 
     <option value='Straddle'>Straddle 
     <option value='Strangle'>Strangle 
     <option value='Tree'>Tree 
     <option value='Condor'>Condor 
     <option value='Ladder'>Ladder 
     </select> 
     </td> 
     <td> 
     <select name='optionFuture[]' id=<?= $optionFutureId ?>> 
     <option value=''> 
     <option value='Option'>Option 
     <option value='Future'>Future 
     </select> 
     </td> 
     <td> 
     <select name='year[]' id=<?= $yearId ?>> 
     <option value=''> 
     <option value='Front'>Front 
     <option value='Short'>Short 
     <option value='Red'>Red 
     <option value='Green'>Green 
     <option value='Blue'>Blue 
     <option value='Gold'>Gold 
     </select> 
     </td> 
     <td> 
     <select name='month[]' id=<?= $monthId ?>> 
     <option value=''> 
     <option value='January'>January 
     <option value='February'>February 
     <option value='March'>March 
     <option value='April'>April 
     <option value='May'>May 
     <option value='June'>June 
     <option value='July'>July 
     <option value='August'>August 
     <option value='September'>September 
     <option value='October'>October 
     <option value='November'>November 
     <option value='December'>December 
     </select> 
     </td> 
     <td> 
     <select name='strike[]' id=<?= $strikeId ?>> 
     <option value=''> 
     <option value='100'>100 
     <option value='99'>99 
     <option value='98'>98 
     <option value='97'>97 
     <option value='96'>96 
     </select> 
     </td> 
     <td> 
     <select onchange='testChanges(<?= $i ?>)' name='callPut[]' id= <?= $callPutId ?>> 
     <option value=''> 
     <option value='Call'>Call 
     <option value='Put'>Put 
     </select> 
     </td> 
     <td> 
     <select name='buySell[]' id=<?= $buySellId ?>> 
     <option value=''> 
     <option value='Buy'>Buy 
     <option value='Sell'>Sell 
     </select> 
     </td> 
     <td> 
     <input type='text' name='price[]' id=<?= $priceId ?> size='9'/> 
     </td> 
     <td> 
     <input type='text' name='quantity[]' id= <?= $quantityId ?> size='9'/> 
     </td> 
     <td> 
     <input type='text' name='delta[]' id= <?= $deltaId ?> size='9'/> 
     </td> 
     <td> 
     <select onchange='testChanges(<?= $i ?>)' name='house[]' id = <?= $houseId ?>> 
     <option value=''> 
     <option value='001 - First Options'>001 - First Options 
     <option value='020 - Bache'>020 - Bache 
     <option value='033 - FC Stone'>033 - FC Stone 
     <option value='Other'>Other 
     </select> 
     </td> 
    </tr> 
    <tr id = $otherId name = $otherId style='display:none'> 
     <td><input type='text' name='spreadFormation[]' id= <?= $spreadFormationId ?> size='9'/></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type='text' name='otherHouse[]' id= <?= $otherHouseId ?> size='22'/></td> 
    </tr> 


<? endfor; ?> 



</table> 
<input id='submitButton' type='submit' name='submit' type='submit' value='submit' /> 
</form> 
+0

雅我真的只需要一個數字,我的名字是在一個數組中。 – 2011-03-19 02:59:31

+0

K我編輯,從它的20行看? – Bodman 2011-03-19 03:05:21

+0

是的,有20行。 – 2011-03-19 03:06:20

1

繼續其他答案: 使用簡寫清除您的代碼。

然後注入循環數<?= $i ?>指示行數不同的速記

Remember <?= is the same as echo 

一束IF/ELSE

<? if(true): ?> 

<? else: ?> 

<? endif; ?> 

WHILE

<?php while (expr):?> 
    statement 
    ... 
<?php endwhile;?> 

<?php for($i = 5; $i < 20; $i++):?> 


    <b> Number : <?= $i ?> ?> 


<?php endfor; ?> 

</body>