У меня есть 2 файлов, .TPL и .inc.phpКак вызвать функцию из файла шаблона с JQuery
В моем .inc.php я использую 2 querys, чтобы получить какие-то данные. С smarty я передаю ответы ответов в файл .tpl и показываю эти данные в таблице и в списке выбора.
Теперь я хочу, чтобы мой список автоматически обновлялся, когда пользователь выбирает новый элемент в списке выбора.
Я действительно могу обнаружить изменения в списке выбора.
Проблема заключается в том, как я мог бы вызвать функцию
updateToolPrivilegesTableForSelectedTool($Object)
из файла .tpl. Функция находится в файле .inc.php. Это возможно с jquery, но я не знаю, как это сделать.
Вот мой код:
PHP:
<?php
updateToolPrivilegesTable();
$tool =$_DB->queryRaw("SELECT objects FROM backend_menu WHERE parent != 0");
while ($row_tool = $tool->next_assoc())
{
$resultstool[] = $row_tool;
}
$smarty->assign("tool_name",$resultstool);
$smarty->assign("privileges",$resultsprivlieges);
$smarty->TDisplay("users/backend_tools_user_privileges.tpl", "Backend Tools Privileges", "general-content.tpl");
function updateToolPrivilegesTable()
{
global $_DB;
global $resultsprivlieges;
$resultsprivlieges = array();
$privlieges = $_DB->queryRaw("SELECT `group_id`, `user_id`, `Object`, `Read`, `Update`, `Insert`, `Delete` FROM `backend_privileges`");
while ($row = $privlieges->next_assoc())
{
$resultsprivlieges[] = $row;
}
}
function updateToolPrivilegesTableForSelectedTool($Object)
{
global $_DB;
global $resultsprivlieges;
$resultsprivlieges = array();
$privlieges = $_DB->queryRaw("SELECT `group_id`, `user_id`, `Object`, `Read`, `Update`, `Insert`, `Delete` FROM `backend_privileges` WHERE `Object`=$Object");
while ($row = $privlieges->next_assoc())
{
$resultsprivlieges[] = $row;
}
}
?>
HTML (.tpl)
<h1> Backend Tools Privileges</h1>
<table>
<tr>
<td>Tool</td>
<td>
<SELECT name="object" id="selectTool">
{foreach from=$tool_name item=toolItem name=foo}
<OPTION name="object" VALUE="{$toolItem['objects']}">{$toolItem['objects']}</OPTION>
{/foreach}
</SELECT>
</td>
</tr>
</table>
<table width='700px' id="employeetable" class="tablesorter" style='table-layout:fixed;'>
<thead>
<tr>
<th>Group Id</th>
<th>User Id</th>
<th>Object</th>
<th>Read</th>
<th>Update</th>
<th>Insert</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
{foreach from=$privileges item=privilegesItem name=foo}
<tr>
<td>{$privilegesItem['group_id']}</td>
<td>{$privilegesItem['user_id']}</td>
<td>{$privilegesItem['Object']}</td>
<td>{$privilegesItem['Read']}</td>
<td>{$privilegesItem['Update']}</td>
<td>{$privilegesItem['Insert']}</td>
<td>{$privilegesItem['Delete']}</td>
</tr>
{/foreach}
</tbody>
</table>
</form>
{literal}
<script type="text/javascript">
$(selectTool).change(function()
{
!!!!!!! Here I shuld call the function updateToolPrivilegesTableForSelectedTool($Object) from .php file.
}
</script>
{/literal}
Похоже, вы хотите использовать 'ajax'. –
возможно это может вам помочь http://stackoverflow.com/questions/2269307/using-jquery-ajax-to-call-a-php-function – pirmin
Спасибо @ExplosionPills и pirmin, да точно. Я попробовал ответ karim79, но я не пользуюсь своей функцией, не могли бы вы мне помочь –