Не могли бы вы помочь мне в этой ситуации?
Допустим, у меня есть это прямо сейчас:
HTML
<select name = "insta_country_code" class = "widget-user-country country-selector" data-account-name = "
<?php echo $account1['Username'] ?>">
<option value = "br">Brazil</option>
<option value = "cl">Chile</option>
<option value = "es" selected>Spain</option>
<option value = "mx">Mexico</option>
<option value = "gb">United Kingdom</option>
<option value = "cr">Costa Rica</option>
</select>
JS
$(document).ready(function () {
$('.country-selector').change(function () {
var ig_name = $(this).data('account-name');
var country_code = $(this).val();
$.ajax({
type: 'POST',
dataType: 'json',
url: 'change-country.php',
data: {
insta_user: ig_name,
country_code: country_code,
},
success: function (data) {
if (data['status'] != 1) {
$.alert('server error');
}
},
error: function () {
$.alert('error');
}
});
})
});
Каким должен быть мой .php файл? Мне нужно сделать что-то вроде этого:
$InstagramCountry = $data['country_code'];
$InstagramUsername = $data['insta_user']);
$sql = mysql_query("UPDATE igaccounts SET Country='$InstagramCountry' WHERE Username='$InstagramUsername'");
Большое спасибо!
@LawrenceCherone Что мне использовать? Вы ссылаетесь на MySQLi? Я ценю любую информацию. Спасибо!
Кевин RE: mysql_ пожалуйста, прочитайте этот вопрос-ответ






Поскольку вы используете метод POST для отправки данных в php-код на стороне сервера, вы можете перехватывать данные, используя глобальную переменную $_POST ИЛИ $_REQUEST, например:
$InstagramCountry = $_POST['country_code'];
$InstagramUsername = $_POST['insta_user']);
Вы сказали в комментарии, что вы получаете ошибку при вызове ajax, вы можете попробовать этот способ отладить причину этой ошибки, используя:
error: function(xhr, textStatus, error){
console.info(xhr.statusText);
console.info(textStatus);
console.info(error);
}
Чтобы зафиксировать ошибку mysqli (я призываю вас использовать mysqli и избегать использования старого/устаревшего mysql), SEE БОЛЕЕ
$result = mysql_query('UPDATE igaccounts SET Country='$InstagramCountry' WHERE Username='$InstagramUsername');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
Спасибо, я тоже думал о $_POST, но моя проблема заключается в преобразовании всего файла PHP в соответствии с моим текущим JS.
это hepled т.е. есть ли что-то, что у вас все еще есть проблема?
Независимо от того, что я использую в своем файле PHP, система выдает мне $.alert('error');, я думаю, мне нужно уточнить, что все внутри .php с результатами, успешно (или нет), но я никогда не использовал АЯКС/JSON
Я ценю вашу помощь. Это странно, потому что теперь с этой опцией отладки я не получаю ошибок, когда пытаюсь выбрать другую опцию страны, но он не выполняет и не обновляет запрос MySQL.
Я в такой же ситуации :(
Попробуйте это, это должно работать для вашего случая. Я проверил это на своем локальном хосте. Для вашего HTML-файла:
<select name = "insta_country_code" class = "widget-user-country country-selector" data-account-name = "<?php echo $account1['Username'] ?>">
<option value = "br">Brazil</option>
<option value = "cl">Chile</option>
<option value = "es" selected>Spain</option>
<option value = "mx">Mexico</option>
<option value = "gb">United Kingdom</option>
<option value = "cr">Costa Rica</option>
</select>
Для вашего JS-файла:
<script>
$(document).ready(function () {
$('.country-selector').change(function () {
var ig_name = $(this).data('account-name');
var country_code = $(this).val();
$.ajax({
type: 'POST',
dataType: 'json',
url: 'change-country.php',
data: {
insta_user: ig_name,
country_code: country_code,
},
success: function (data) {
if (data['status'] != 1) {
$.alert('server error');
}
},
error: function () {
$.alert('error');
}
});
})
});
</script>
Для вашего файла .PHP:
<?php
$data = $_REQUEST;
$InstagramCountry = $data['country_code'];
$InstagramUsername = $data['insta_user'];
echo "insta_user = ".$InstagramUsername . " AND country_code = " . $InstagramCountry; exit;
Скажи мне, если все еще нужна помощь, братан.
Независимо от того, что я использую в своем файле PHP, система выдает мне $.alert('error');, я думаю, мне нужно уточнить, что все внутри .php с результатами, успешно (или нет), но я никогда не использовал АЯКС/JSON
И что мне нужно сделать, так это в .php: mysql_query("ОБНОВЛЕНИЕ igaccounts SET Country='$InstagramCountry' WHERE Username='$InstagramUsername'")
Привет, можно сделать так:
ваш php-скрипт:
if (isset($_POST["action"])) {
$action = $_POST["action"];
switch ($action) {
case 'SLC':
if (isset($_POST["id"])) {
$id = $_POST["id"];
if (is_int($id)) {
$query = "select * from alumni_users where userId = '$id' ";
$update = mysqli_query($mysqli, $query);
$response = array();
while($row = mysqli_fetch_array($update)){
.......
fill your response here
}
echo json_encode($response);
}
}
break;
}
}
Где действие — это команда, которую вы хотите выполнить SLC, UPD, DEL и т. д., а идентификатор — параметр.
затем в вашем ajax:
function getdetails() {
var value = $('#userId').val(); // value can be your array ! note: if you send a object json_encode(json_decode(,MyObj,true))
return $.ajax({
type: "POST",
url: "getInfo.php",
data: {action: "SLC",id: value }
})
}
назовите это так:
getdetails().done(function(response){
var data=JSON.parse(response);
if (data != null) {
//do somthing with your Data
}
})
Надеюсь, поможет
Почему вы используете
mysql_*?