Этот вопрос немного отличается от тех, на которые уже даны ответы ...
Я хочу запустить функцию autoHide()
, которая вызывает файл PHP, artistdo.php
, которыйвыполняет запрос MySQL при отправке формы, и если он возвращает true (запрос успешно выполняется), форма не отправляется.
Я получаю только то, что запрос MySQL не выполняется, и даже если яудалите запрос и поместите return true на страницу artistdo.php
, return false в ajax не останавливает отправку формы, но вызывает вызов alert("Success");
, однако, если я поставлю return false в autoHide()
функция, но за пределами AJAX, форма не отправляется правильно.Вот что у меня есть:
Страница формы:
<head>
function autoHide() {
$.ajax({
'url': '/artistdo.php',
'type': 'GET',
'dataType': 'json',
'data': {
cmd: 'autoHideProduct'
},
'success': function () {
alert("Success");
return false;
}
});
}
</head>
<body>
<form action="http://off-site/form.php" method="post"
onSubmit="return autoHide()">
<input type="submit" value="submit"
onMouseOver="this.style.cursor='pointer'">
</form>
И страница artistdo.php
(Это упрощенная версия для удобства чтения):
if($get['cmd'] == 'autoHideProduct') {
$query = mysql_query("UPDATE products SET house='0'");
if ($query) {
return true;
} else {
return false;
}
Итак, если я полностью удаляю весь запрос MySQL со страницы artistdo.php
и заменяю его только на return true;
, форма все равно отправляет, что заставляет меня думать, что проблема в AJAX, поскольку *Страница 1021 * определенно возвращает true, и вызывается alert("Success");
.Если я переместу return true
за пределы вызова AJAX, форма не будет отправлена правильно.
Надеюсь, это имеет смысл ...
Спасибо за любую помощь!