Я работаю с Concrete-5 CMS, у меня есть проблема с передачей формы формы представления для контроллера. В моем приложении я использую следующий код для отображения роли сотрудника.
foreach($rd as $data){ echo "<tr><td>".$data[role_name]."</td><td>".$data[role_description]."</td><td><a href=".$this->action('edit', $data['role_id']).">Edit</a></td><td>".$ih->button_js(t('Delete'), "deleteRole('".$data['role_id']."')", 'left', 'error')."</td></tr>"; } <input type="hidden" name="rno" id="rno" />
сценарий:
$delConfirmJS = t('Are you sure you want to remove this Role?'); ?> <script type="text/javascript"> function deleteRole(myvar) { var role = document.getElementById('rno'); role.value = myvar; if (confirm('<?php echo $delConfirmJS ?>')) { $('#rolelist').submit(); //location.href = "<?php echo $this->url('/role/add_role/', 'delete', 'myvar')?>"; } } </script>
html code Я действительно редактировал операцию, передав role_id посредством действия редактирования. Но, в случае удаления, я должен запросить конформацию, поэтому я использую скрипт java для его соответствия и называю местоположение href и все.
Но я не знаю, как передать role_id скрипту и перейти к моему контроллеру. как достичь этой задачи?
спасибо Кумару
Вы можете передать значение серверу с помощью вызовов ajax. См. Следующий код. Здесь мы используем поле подтверждения, чтобы получить подтверждение пользователя.
function deleteEmployee(empId){ var confirm=confirm("Do you want to delete?"); if (confirm) { var url = "path/to/delete.php"; var data = "emp_id="+empId; $.ajax({ type: "POST", url: "otherfile.php", data: data , success: function(){ alert("Employee deleted successfully."); } }); } }
В файле delete.php вы можете взять идентификатор сотрудника с помощью $_POST['emp_id']
Вы можете сделать это легко, используя jquery
var dataString = 'any_variable='+ <?=$phpvariable?>; $.ajax({ type: "POST", url: "otherfile.php", data: dataString, success: function(msg){ // msg is return value of your otherfile.php } }); //END $.ajax
Я бы добавил дополнительную переменную в адрес ссылки удаления. Предпочтительно идентификатор строки, которую нужно удалить.
Я не знаю Concrete-5 CMS. Но я даю вам общую идею
Я думаю, вы используете кнопку, на которую пользователи могут щелкнуть, если они хотят удалить роль.
<td>".$ih->button_js(t('Delete'), "deleteRole('".$data['role_id']."')", 'left', 'error')."</td>
Мое предложение,
добавить onClick
to button
onClick="deleteEmployee(roleId);"
// roleId – динамический идентификатор роли зацикливанием
Честно говоря, чувак, я не знаю, как вы добавите это к своей кнопке, я думаю, что наверняка будет какой-то способ просто добавить это в существующий html.
И теперь просто используйте функцию Саджита
// Sajith's function here function deleteEmployee(empId){ var confirm=confirm("Do you want to delete?"); if (confirm){ var url = "path/to/delete.php"; var data = "emp_id="+empId; $.ajax({ type: "POST", url: "otherfile.php", data: data , success: function(){ alert("Employee deleted successfully."); } }); } }