我创建一个带有2个输入的表单,一个是隐藏的文本另一个存储我的变量的值。然后我用post方法编写一个jquery脚本,将值传递给另一个php文件,该文件将值插入数据库,但只插入文本输入的值,隐藏输入的值不起作用。 这是表单和jquery脚本:
<?php
include_once('header.php');
$uid = $_GET['uid'];
echo $uid;
[enter image description here][1]?>
<form>
<input name="usermsg" type="text" id="usermsg" size="63" />
<input type="hidden" name="uid" value="<?php echo $uid; ?>">
<input name="submitmsg" type="submit" id="submitmsg" value="Send" />
</form>
$(document).ready(function () {
$("#submitmsg").click(function () {
var clientmsg = $("#usermsg").val();
var clientid = $("#uid").val();
$.post("includes/postchat.php", {text: clientmsg,uid: clientid});
$("#usermsg").attr("value", "");
return false;
});
这是postchat.php文件:
if (isset($_SESSION['u_uid'])) {
include('dbh-inc.php');
$text = mysqli_real_escape_string($conn, $_POST['text']);
$uid = $_POST['uid'];
$date_current = date("Y-m-d H:i:s");
$user = $_SESSION['u_uid'];
if ($user = 'one') {
if ($text != '') {
$sql = "INSERT INTO messages (body, user_from, date_sent, user_to) VALUES (
'$text',
'$user',
'$date_current',
'$uid'
)";
mysqli_query($conn, $sql);
}
提交后我的数据库表:
答案 0 :(得分:1)
更改此
<input type="hidden" name="uid" value="<?php echo $uid; ?>">
进入这个
<input type="hidden" id="uid" name="uid" value="<?php echo $uid; ?>">
因为你只把名字作为uid但是试图获得不存在的#uid的值
答案 1 :(得分:0)
将id字段作为uid放在隐藏元素中。
<input type="hidden" id="uid" name="uid" value="<?php echo $uid; ?>">
在JQuery中,如果您使用&#39;#&#39;来访问元素这意味着你是通过他们的ID访问它们。
希望这有帮助。
答案 2 :(得分:0)
如前所述的答案,没有id id的元素。 您应该将元素标记更改为
<input type="hidden" id="uid" name="uid" value="<?php echo $uid; ?>">
或者使用以下jQuery代码:
var clientid = $("input[name='uid']").val();
答案 3 :(得分:0)
你可以这样做:
<form>
<input name="usermsg" type="text" size="63" />
<input type="hidden" name="uid" value="<?php echo $uid; ?>">
<input name="submitmsg" type="submit" value="Send" />
</form>
<script>
$(function () {
$("form").submit(function (e) {
e.preventDefault();
$.post("includes/postchat.php", $(this).serialize());
$("#usermsg").attr("value", "");
return false;
});
});
</script>
请注意
$(this).serialize()
将序列化所有表单字段,因此您可以轻松添加更多字段,而无需逐个添加它们,也无需设置任何ID。