У меня есть следующие Javascript код:вставки SQL выполняется, но Ajax получает сообщение об ошибке
var value = $.ajax({
type: "POST",
url: "receive.php",
data: $('#something').serialize(),
cache: false,
async: true
}).success(function(){
}).error(function() {
alert("not sent");
});
и PHP
if(isset($_POST['the_thingy'])){
$allowed = 100;
$the_thingy = $mysqli->real_escape_string($_POST['the_thingy']);
$query = "SELECT another thingy from the database";
$the_thingy_length = strlen($the_thingy);
if($the_thingy_length <= $allowed){
$query = "INSERT INTO thingyes VALUES '$the_thingy'";
$result = $mysqli->query($query);
}
//amongst other queries and of the same "type"
в основном то, что происходит, что вставка делается действительно, но по какой-то причине он выглядит как удвоенный в базе данных (2x запрос выполняется один раз). Ajax получает сообщение («не отправлено»); и страница обновляется (что не предполагается). Что может быть причиной этого? Другие запросы, синтаксис кода, некоторые функции? Все остальные ajax я использую работу просто отлично. Это известная проблема из-за чего-то конкретного? Заранее большое спасибо!
Похоже, вам необходимо предотвратить действие по умолчанию вашей формы. Можете ли вы опубликовать полный код, где запускается ajax? И проверьте журнал ошибок для ошибок php. – jeroen
@jeroen Я не могу, кусок кода действительно extralarge и будет казаться несвязанным или запутанным с именами переменных. Как именно я могу запретить действие формы по умолчанию **? Я никогда не делал этого, и каждый аякс работал ... это, в частности, отличается, форма ** # что-то ** составлена из 4 текстовых областей, которые принимают огромное количество текста и затем отправляются. Он хранится как ** ТЕКСТ ** в mysql и, кажется, правильно загружается (не нарезается) ... – user111671
См. Мой ответ, работает ajax, но так же, как и обычная форма, если вы не остановите ее, чтобы вы получить двойное представление (и обновление страницы ...). – jeroen