Php .val()单击按钮时未捕获文本框值

Php .val()单击按钮时未捕获文本框值,php,jquery,ajax,button,sql-update,Php,Jquery,Ajax,Button,Sql Update,我试图在文本框中输入一个值,并让它触发数据库的update语句,但是post.val()返回一个空值 下面是函数: <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script> function save_a9(id) { $.post('response6.php', {starID:id, starURL: $('#starurl').va

我试图在文本框中输入一个值,并让它触发数据库的update语句,但是post
.val()
返回一个空值

下面是函数:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
     function save_a9(id) {
        $.post('response6.php', {starID:id, starURL: $('#starurl').val()}, 
            function(result) { 
                alert(result); 
                window.location.reload();
        });
    }
</script>

功能保存_a9(id){
$.post('response6.php',{starID:id,starURL:$('#starURL').val()},
函数(结果){
警报(结果);
window.location.reload();
});
}
下面是按钮和文本框:

    echo "<br><b>request to join site: {$row9['count']}</b><br>";
while ($row99 = $prep99->fetch(PDO::FETCH_ASSOC)) {
    echo "{$row99['starID']} , {$row99['starName']} = {$row99['twitter']}";
    if ($row99['guest'] == 0) {
        $guest = 'ongoing';
    };
    if ($row99['guest'] == 1) {
        $guest = 'guest';
    };
    if ($row99['guest'] == 2) {
        $guest = 'PLEASE SELECT ONE';
    };
    echo " ~ $guest ~ <br>";
    echo "<input type='text' name='starurl' value='{$row99['starURL']}' id='starurl' style='width:100px; height:30px;'/>";
    echo "<br><button onclick='save_a9({$row99['starID']})'>Approve</button><button onclick='save_d9({$row99['starID']})'>Disapprove</button><br>";
}
echo“
请求加入站点:{$row9['count']}
”; 而($row99=$prep99->fetch(PDO::fetch_ASSOC)){ echo“{$row99['starID']},{$row99['starName']}={$row99['twitter']}”; 如果($row99['guest']==0){ $guest=‘进行中’; }; 如果($row99['guest']==1){ $guest='guest'; }; 如果($row99['guest']==2){ $guest='请选择一个'; }; 回声“~$guest~
”; 回声“; 回声“
批准即批准”
; }
下面是response6.php:

<?php
include("db_conn.php");
$sql = "update stars set approved = 1, starURL = ? where starID = ?";
$qc = $pdo_conn->prepare($sql);
$qc->execute(array($_POST['starURL'], $_POST['starID']));
echo 'saved';
?>

我将使用属性id。比如说

<button id="button-id">Click me</button>
点击我

并在jQuery中使用它

看起来您可能没有使用期望的参数执行函数。有没有可能添加一个JSFIDLE?页面上有多少个
元素?如果有多个ID,则ID必须是唯一的。非唯一id可能会导致此问题。请在控制台中运行
$('[id=“starurl”]')。length
以查看是否存在重复的id。我无法确定如何使JSFIDLE正常工作。抱歉。我只有1个输入,如何使用它:
$('[id=“starurl”]')。length
我猜
$('#starurl')。val()
返回一个值,但不知何故,您的服务器无法获取它。尝试
console.log($('#starurl').val())
查看是否有值。好的,但它如何适用于我的项目?它仍然能够做所有的事情,我正在寻找aka使用文本框值更新数据库字段?对不起。我的错误。我没有得到#starurl的值。我看到它在一个循环中,所以我假设它生成多个#starurl。我发现jQuery将获得列表中的第一个输入。因此,如果在第一个输入框之外的其他位置输入值,jQuery将不会获得该值。这在ajax和update查询中是如何工作的?仍然不太理解它,我需要使用多个文本框,如starurl和starimage…您的目的是获取#starurl的值,对吗?您的while循环将生成HTML,该HTML对所有用户使用相同的id,即starurl。HTML id在每个页面上只能存在一次。如果需要多次显示,请改用class。我希望这个更新的例子能有所帮助。它看起来是一样的,并将其放入上面的函数和响应6代码中