Я добавляю строки в таблицу одним нажатием кнопки.Количество строк в динамически созданной таблице
Что бы я хотел сделать, это когда пользователь нажимает кнопку «Проверить таблицу с динамически генерируемым числом строк». Если количество строк в этой таблице равно «0» - пусто, покажите модальное всплывающее окно.
В противном случае не показывать модальные.
Мой текущий jQuery просто возвращает 0 для num_rows.
$('.odds-btn').click(function()
{
var rowCount = $('#betting_table tr').length;
var bet_type = $(this).attr('data-bet-type');
var bet_line = $(this).attr('data-bet-line');
if(bet_line == undefined)
{
bet_line = '0';
}
var game_id = $(this).attr('data-game-id');
var bet_id = $(this).attr('data-offer-type-id');
var team = $(this).attr('data-team-name');
var odds = $(this).attr('data-odds-fractional');
var url = "/index/build_betslip/" + bet_type + "/" + game_id + "/" + bet_id + "/" + team + "/" + odds + "/" + bet_line;
$.ajax({
type: "GET",
url: url,
success:function()
{
alert(rowCount);
if(rowCount == 0)
{
// Add To The Bet Slip....
$('.slip-modal').modal('show');
}
}
})
})
Функции PHP Я использую являются:
public function build_betslip()
{
// Get Bet Type (1, 2, X, bttsyes, bttsno, under, over)
$bet_type = $this->uri->segment(3);
// Get Game ID
$game_id = $this->uri->segment(4);
// Get Bet ID (e.g 1X2 = WLD)
$bet_id = $this->uri->segment(5);
// Get Team Name
$teamname = $this->uri->segment(6);
// Get Odds
$odds1 = $this->uri->segment(7);
$odds2 = $this->uri->segment(8);
// Get Bet Line (1.5/2.5 - For Under/Over Market)
$bet_line = $this->uri->segment(9);
$odds = $odds1;
$odds .= "/";
$odds .= $odds2;
// Build An array titled Bet
$bet = array(
'0' => array(
'bet_type' => $bet_type,
'game_id' => $game_id,
'bet_id' => $bet_id,
'team' => urldecode($teamname),
'odds' => $odds,
'line' => $bet_line
)
);
$betslip = $this->session->userdata('betslip');
// Create The Betslip For The First Time...
if(empty($betslip))
{
$this->session->set_userdata('betslip', $bet);
}
else
{
// Add To The Betslip Array...
$betslip[] = array(
'bet_type' => $bet_type,
'game_id' => $game_id,
'bet_id' => $bet_id,
'team' => urldecode($teamname),
'odds' => $odds,
'line' => $bet_line
);
$this->session->set_userdata('betslip', $betslip);
}
}
/*
* This Function Gets
* The Current Users' Bet Slip
* And builds a table based on it and returns as
* Suitable data
*/
public function get_betslip()
{
$betslip = $this->session->userdata('betslip');
if(empty($betslip))
{
echo "<p>Bet slip is currently empty</p>";
}
else
{
// Return The Table...
echo "<table class='table' id='betting_table'>";
echo "<thead>";
echo "<th> </th>";
echo "<th>Your Selection</th>";
echo "<th>Odds</th>";
echo "</thead>";
echo "<tbody>";
foreach($betslip as $key => $value)
{
echo '<tr class="table-row-' . $key .'">';
echo "<td><a class='bet-cross' data-row='$key' href='#'>x</a></td>";
echo "<td>";
echo $value['team'];
echo "</td>";
echo "<td>";
echo $value['odds'];
echo "</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<a class='clear-slip' href='".base_url('betslip/clear')."'>Clear Slip</a>";
echo "<a class='site-btn compare' href='".base_url('betslip')."'></a>";
}
}
Пример ответа от AJAX кода:
<table class='table' id='betting_table'><thead><th> </th><th>Your Selection</th><th>Odds</th></thead><tbody><tr class="table-row-0"><td><a class='bet-cross' data-row='0' href='#'>x</a></td><td>Wigan Athletic VS Charlton Athletic (Draw)</td><td>5/2</td></tr><tr class="table-row-1"><td><a class='bet-cross' data-row='1' href='#'>x</a></td><td>Atalanta</td><td>21/1</td></tr></tbody></table><a class='clear-slip' href='http://local.oddssweeper/betslip/clear'>Clear Slip</a><a class='site-btn compare' href='http://local.oddssweeper/betslip'></a>
По умолчанию таблица пуста.
Благодаря
Я не вижу, где вы добавляете строки в свой стол? – Brewal
Добавление строк в таблицу, а затем подсчет количества строк, которые добавляются, чтобы увидеть, есть ли хотя бы один, кажется немного запутанным. Не можете ли вы просто установить флаг при добавлении строки? – paul
Похоже, вам нужно добавить код в свой обработчик успеха, чтобы добавить данные, возвращаемые с вашего запроса Ajax, в таблицу –