Sé que esta pregunta ya se hizo varias veces antes. Pero no pude relacionarme conmigo. Estoy trabajando en un sistema de chat donde envío y recibo mensajes.
Mi código PHP es: -
<div class="chat-area" id="chatBox"> <?php if (!empty($chats)) { foreach ($chats as $chat) { $timeago = get_timeago(strtotime($chat['created_at'])); $msg_time = htmlspecialchars(trim($timeago)); if ($chat['from_id'] == $_SESSION['login']) { ?> <div class="outgoing"> <div class="details"> <p><?= $chat['message'] ?> <h><?= $msg_time ?></h> </p> </div> </div> <?php } else { ?> <div class="incoming"> <div class="details"> <p> <?= $chat['message'] ?> <h><?= $msg_time ?></h> </p> </div> </div> <?php } } }Mi código js es: -
$(document).ready(function() { $("#sendBtn").on('click', function() { message = $("#message").val(); if (message == "") return; $.post("app/ajax/insert.php", { message: message, to_id: <?= $unid ?>}, function(data, status) { $("#message").val(""); $("#chatBox").append(data); scrollDown(); }); });Pero el problema es cuando
to_id: <?= $unid ?>$unid es numérico como 12345, funciona bien, pero cuando $unid es alfanumérico como 1b3vc3g, muestra un error de mención. Se está comportando igual para enviar y recibir. Por favor, ayúdame a abordar esto. gracias de antemano
Use json_encode , que generará la forma correcta para JavaScript siempre que el parámetro sea uno de los tipos compatibles con JSON:
to_id: <?= json_encode($unid) ?>