#php #jquery #ajax
#php #jquery #ajax
Вопрос:
У меня есть один файл, который отправляет запросы AJAX / jQuery в другой файл. Теперь у меня есть куча запросов, которые я отправляю в один и тот же файл, за исключением того, что я обозначаю, что я хотел бы сделать, указав параметр get, например:
edit.php:
function change_color_theme(new_theme) {
$.get('ajax_querys.php?t=change_color_themeamp;new_theme=' new_theme);
window.location.href = "Edit.php";
}
function changeName(val) {
$.get("ajax_querys.php?t=enamp;val=" val, {}, function(response) {
var source = $('<div>' response '</div>');
$('.test_title_body').html(source.find('#form_name_ret').html());
});
}
function refresh_collab_pane() {
$.get('ajax_querys.php?t=update_collab_list', function(response) {
var source = $('<div>' response '</div>');
// document.getElementById("collab_list_infop").innerHTML = response;
$('#collab_list_infop').html(source.find('#returned_collab_list').html());
});
}
//There are many more requests, these are just a select few. If you notice, I am specifying the action that I want to perform in the get param called "t". Now take a look at my ajax queries page
ajax_queries.php:
if ($_GET['t'] = "en") {
if (isset($_GET['val'])) {
$striped_val = filter_single($_GET['val']);
if (empty($striped_val)) {
if ($_SESSION['form_type'] == "q") {
$striped_val = "TQuiz";
} else {
$striped_val = "TSheet";
}
}
$query = "SELECT * FROM forms";
$i = 0;
$exec_q = mysqli_query($conn, $query);
while ($row = mysqli_fetch_array($exec_q)) {
if (strpos($row['name'], $striped_val) !== false) {
$i ;
}
}
if ($i == 0) {
$i = "";
}
$striped_val = $striped_val . " " . $i;
$pre_stmt = "UPDATE forms SET `name` = ? WHERE `id` = ?";
$stmt = mysqli_stmt_init($conn);
if (!$stmt = mysqli_prepare($conn, $pre_stmt)) {
?>
<script>
alert('Sorry! There was an issue proccesing your request. Please reload the page.')
</script>
<?php
}
mysqli_stmt_bind_param(
$stmt,
"si",
$striped_val,
$_SESSION['form_id']
);
mysqli_stmt_execute($stmt);
$_SESSION['form_name'] = $striped_val;
?>
<?php echo "<p id='form_name_ret'>$_SESSION[form_name]</p>" ?>
<?php
}
}
if ($_GET['t'] == "change_color_theme") {
if (isset($_GET['new_theme'])) {
$pre_stmt = "SELECT * FROM forms WHERE id=?";
$stmt = mysqli_stmt_init($conn);
if (!$stmt = mysqli_prepare($conn, $pre_stmt)) {
?>
<script>
alert('Sorry! There was an issue proccesing your request. Please reload the page.')
</script>
<?php
}
mysqli_stmt_bind_param(
$stmt,
"i",
$_SESSION['form_id']
);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_array($result);
$json = json_decode($row['details'], true);
$theme = "";
if ($_GET['new_theme'] == "horizon") {
$theme = "horizon";
} elseif ($_GET['new_theme'] == "happy_green") {
$theme = "happy_green";
} elseif ($_GET['new_theme'] == "deep_purple") {
$theme = "deep_purple";
} elseif ($_GET['new_theme'] == "lemon_pop") {
$theme = "lemon_pop";
} elseif ($_GET['new_theme'] == "funky_black") {
$theme = "funky_black";
} elseif ($_GET['new_theme'] == "color_smoothie") {
$theme = "color_smoothie";
} else {
}
$json['theme'] = $theme;
$json = json_encode($json, JSON_FORCE_OBJECT);
$pre_stmt = "UPDATE forms SET details=? WHERE id=?";
$stmt = mysqli_stmt_init($conn);
if (!$stmt = mysqli_prepare($conn, $pre_stmt)) {
?>
<script>
alert('Sorry! There was an issue proccesing your request. Please reload the page.')
</script>
<?php
}
mysqli_stmt_bind_param(
$stmt,
"si",
$json,
$_SESSION['form_id']
);
mysqli_stmt_execute($stmt);
$_SESSION['refresh_param-loader'] = 0;
$_SESSION['refresh_param-click'] = "themes";
$_SESSION['refresh_param-theme_notification'] = 1;
}
}
if ($_GET['t'] = "update_collab_list") {
$pre_stmt = "SELECT * FROM forms WHERE id=?";
$stmt = mysqli_stmt_init($conn);
if (!$stmt = mysqli_prepare($conn, $pre_stmt)) {
?>
<script>
alert('Sorry! There was an issue proccesing your request. Please reload the page.')
</script>
<?php
}
mysqli_stmt_bind_param(
$stmt,
"i",
$_SESSION['form_id']
);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_array($result);
?>
<div id="returned_collab_list">
<?php
foreach (json_decode($row['owners']) as $index => $values) {
$pre_stmt1 = "SELECT * FROM users WHERE email=?";
$stmt1 = mysqli_stmt_init($conn);
if (!$stmt1 = mysqli_prepare($conn, $pre_stmt1)) {
?>
<script>
alert('Sorry! There was an issue proccesing your request. Please reload the page.')
</script>
<?php
}
mysqli_stmt_bind_param(
$stmt1,
"s",
$values->email
);
mysqli_stmt_execute($stmt1);
$result1 = mysqli_stmt_get_result($stmt1);
$count_of_rows = mysqli_num_rows($result1);
$row1 = mysqli_fetch_array($result1);
$info_decoded = json_decode($row1['notes']);
if ($count_of_rows > 0) {
$color_of_pfp = $info_decoded->notes->color;
$name = $row1['first_name'] . " " . $row1['last_name'];
} else {
$color_of_pfp = "grey";
$name = $values->email;
}
if ($name == $values->email) {
$initials = $values->email[0];
} else {
$arr_sep_name = preg_split("[s]", $name);
$initials = $arr_sep_name[0][0] . $arr_sep_name[1][0];
}
?>
<li class="list-group-item bg-transparent colllab_li d-flex justify-content-between align-items-center">
<div class="d-flex">
<span class="listed_pfp_collab pfp_<?= $color_of_pfp ?> overlap_pfp_top"><?= $initials ?></span>
<div class="d-flex align-items-center collab_li_cont ">
<span class="collab_name_listed">
<span class="name"><?php echo $name . " ";
echo ($values->email) == $_SESSION['email'] ? "(You)" : "" ?></span>
<?php
if ($values->position == "n/a") {
?>
<span class="status text-muted">
<i class="fas fa-circle text-muted"></i>Inactive | <span class="text-dark ml-1"> <?= $values->email ?></span>
</span>
<?php
} else {
?>
<span class="status text-success">
<i class="fas fa-circle text-success"></i>Active | <span class="text-dark ml-1"> <?= $values->email ?></span>
</span>
<?php
}
?>
</span>
</div>
</div>
<?php
if ($_SESSION['form_access_level'] == "admin") {
?>
<div class="d-flex align-items-center select_times_collab_cont">
<select class="select_admin_not resizeselect <?php echo ($values->access) == "admin" ? "admin_badge_select" : "editor_badge_select" ?>" data-toggle="tooltip" data-placement="top" id="<?= $values->email ?>" <?php if ($values->email == $_SESSION['email']) {
echo 'disabled title="You can't change your own tier of access"';
} else {
echo 'onchange="changeAccessCollaborator(this)"';
} ?>>
<option <?php echo ($values->access) == "admin" ? 'selected' : "" ?> value="Administrator">Administrator</option>
<option <?php echo ($values->access) == "editor" ? 'selected' : "" ?> value="Editor">Editor</option>
</select>
<div class="menu_tripdot_cont_collab_pane">
<i class="far fa-ellipsis-v text-dark" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></i>
<div class="dropdown-menu">
<a class="dropdown-item" onclick="triggerRemoveCollabModal(this.parentElement.parentElement.parentElement.children[0])" href="#">
<span class="remove_text">Remove</span>
</a>
</div>
</div>
</div>
<?php
}
?>
</li>
<?php
}
?>
</div>
<?php
// echo '<p id="testing_msg">This is working ok.</p>';
}
Существует много (я перечислил только несколько) запросов, которые отправляются в «ajax_queries.php «. Они различаются из-за параметра get . Страница запросов AJAX содержит условные обозначения для определения того, что она должна делать. Теперь проблема в том, что всякий раз, когда я изменяю существующее условие или добавляю новое, остальные перестают работать. Чтобы заставить их снова работать, я должен переместить их в начало страницы. Но есть некоторые условные обозначения, которые продолжают работать, даже если я создаю новые или изменяю существующие, например, «refresh_collab_pane» всегда работает.