jquery post函数使用文本输入但不隐藏输入

时间:2018-06-15 20:23:47

标签: php jquery sql

我创建一个带有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);
    }

提交后我的数据库表:

4 个答案:

答案 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。