Надеюсь, это будет последний вопрос, который я делаю сегодня вечером, это действительно раздражает. Я, наконец, нашел способ заставить этот Ajax работать над обработкой HTML-формы с использованием двух отдельных скриптов PHP, это просто способ, который лучше всего подходит для меня, я думаю. Я опубликую все сценарии, чтобы немного упростить задачу.Ajax работает над формой, но не публикует переменные данные
Вот форма (messages.php):
<form action="" method="post" id="reply" name="reply">
<div class="form-group">
<textarea class="form-control" rows="3" cols="80" id="message" name="message" placeholder="Send a reply..."></textarea>
<input type="hidden" id="conversation_id" name="conversation_id" value="<? echo $co_conversation_id; ?>">
<input type="hidden" id="sarssystem" name="sarssystem" value="<? echo $sarssystem; ?>">
</div>
<div class="form-group" align="right">
<div class="btn-group" align="left" style="float:left">
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span> <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="messages.php?convoid=<? echo $co_conversation_id; ?>&del=check">Delete Conversation</a></li>
<li><a href="#">Visit Profile</a></li>
<li><a href="#">Report User</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Change Display Photo</a></li>
</ul>
</div>
<button type="reset" class="btn btn-default btn-sm">Cancel</button>
<button type="submit" id="reply" name="reply" class="btn btn-primary btn-sm" onclick="loadDoc()">Send Message</button>
</div>
</form>
Вот Ajax (messages.php):
<script>
function loadDoc() {
$.ajax({
url: 'system/message_system.php',
type: 'POST',
dataType: 'json',
data: {
message: 'message',
conversation_id: 'conversation_id',
sarssystem: 'sarssystem',
user_id: 'user_id'
},
})
.done(function() {
$.ajax({
url: 'system/sars_system.php',
type: 'POST',
dataType: 'json',
data: {
message: 'message',
conversation_id: 'conversation_id',
sarssystem: 'sarssystem',
user_id: 'user_id'
},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
})
.fail(function() {
console.log("error");
})
}
</script>
Я использую этот же скрипт в качестве теста на обоих (система/sars_system.php) и (message_system.php):
require 'db.php';
$message = $_POST['message'];
$conversation_id = $_POST['conversation_id'];
$sarssystem = $_POST['sarssystem'];
$user_id = $_POST['user_id'];
$usr_message = str_replace("'","\\'",$message);
mysqli_query($conn,"INSERT INTO ap_messages (message_id, message, sender_id, time_sent, time_read, conversation_id)
VALUES ('','$usr_message','$user_id', NOW(), NOW(), '$conversation_id')");
mysqli_query($conn, "UPDATE ap_conversations SET time = NOW() WHERE conversation_id = '$conversation_id'");
echo json_encode('success');
Это прекрасно работает и, кажется, бежит хорошо, хотя я получаю пустой Рез в MySQL, где переменные данные должны быть, и я не знаю, почему.
Причина, по которой я использовал Ajax в том, как у меня есть, потому что это был единственный вариант, который действительно работал по какой-то причине? Поэтому я не уверен, что это связано с проблемой - обратите внимание, что я буквально понятия не имею, как использовать Ajax, я все еще участвую.
Если у кого есть идеи, почему данные не публикуются, было бы здорово, что вам нужна ваша помощь! Благодаря!
[Ваш сценарий под угрозой для SQL Injection Attacks.] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –
Если вы посмотрите в своих журналах ошибок, вы увидите, почему ваши запросы не работают, если вы не хотите добавлять проверку ошибок к запросам в ваших PHP-скриптах. Вы просто * предполагаете, что ваши запросы хороши. –
Представьте, я положил ''; DROP DATABASE; - 'в поле сообщения !! – worldofjr