jquery — Как вставить jqueryUi (Показать эффект -> Drop) на странице php

Я пытаюсь записать из моей базы данных на мою страницу, используя один эффект. Цель, когда он пишет мой комментарий на странице, показать его с эффектом.

<?php
if(count($_POST) > 0){
echo '<script language="javascript">';
echo '$( "#toggle" ).toggle( "drop" );';
echo '</script>';

$db = new mysqli("localhost", "root", "usbw", "trab_projeto");

$qr = $db->query("INSERT INTO comments(comment) VALUES ('{$_POST['mensagem']}')");

echo "<fieldset id='toogle'>";
echo "<p>";
$row = $db->query("SELECT * FROM comments ORDER BY comment_id DESC LIMIT 1")->fetch_assoc();
echo $row["comment"];
echo "</p>";
echo "</fieldset>";
}
?>

Часть сценария не работает.
Этот код выполняется, когда я нажимаю на форму отправки.

<div class="cadastro">
<form action="" id="form-msg" method="post" enctype="multipart/form-data">
<fieldset>
<p>
<span><b>Escreva aqui o seu comentário:</b></span><br>
<textarea name="mensagem" style="margin: 0px; width: 511px; height: 119px;"></textarea>
</p>
<input type="submit" value="Enviar">
</fieldset>
</form>
</div>

0

Решение

Чтобы вернуть JSON-ответ, вы должны сначала поместить его в свой header(), В верхней части вашего сценария добавьте:

header('Content-type: javascript/json');

Двигаясь дальше, чтобы предотвратить инъекцию SQL, я изменил драйвер на PDO по которой вы можете найти документацию.

header('Content-type: javascript/json');
$driver = new PDO('mysql:host=localhost;dbname=trab_projeto', 'root', 'password');
$state = false;
if(
!isset($_POST['mensagem']) &&
!empty($_POST['mensagem'])
) {
$driver->Prepare('INSERT INTO comments (comment) VALUES (?)');
$state = $driver->execute(array($_POST['mensagem']));
}
if($state)
{
echo json_encode(array('status' => true));
exit;
}
echo json_encode(array('status' => false));
exit;

Для дальнейшего уведомления этот «комментарий» не прикреплен ни к какой «нить». Если у вас есть множественный посты, вы должны дать каждому посту уникальный идентификатор и перекрестную ссылку на идентификатор поста с комментарием, чтобы вы могли загрузить комментарии для этого конкретного поста.

Затем вы можете использовать jQuery для отправки запросов следующим образом:

$(document).ready(function() {
var form = $('#form-msg');
comment = form.closest('textarea').val();
$.post('the_file_path.php', { mensagem: comment })
.done(function(response) {
if(response.status) {
// todo: success using the effect below
}
});
});

Обратите внимание, что приведенный выше код требует click() прикреплен к вашей кнопке отправки. Попробуйте удалить эту строку кода:

<input type="submit" value="Enviar">

И с помощью:

<button type='button'>Enviar</button>

Таким образом, вы можете настроить таргетинг через форму следующим образом:

form.closest('button').click(function() {
// ...
}

Вы можете использовать эффект при отображении комментария для пользовательского конца следующим образом:

var commentToAdd = document.createElement('p');
commentToAdd.innerHTML = comment;
$('#comments').append(commentToAdd);
commentToAdd.show('slow');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]