【发布时间】:2013-09-10 02:51:38
【问题描述】:
我正在尝试在文本框中输入一个值并让它触发对数据库的更新语句,但帖子 .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>
这里是按钮和文本框:
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>";
}
这里是 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';
?>
【问题讨论】:
-
看起来您可能没有使用您希望的参数执行该函数。你有机会添加一个 jsfiddle 吗?
-
页面上有多少个
<input>元素?如果您有多个 ID,则 ID 必须是唯一的。非唯一 ID 可能会导致此问题。 -
在控制台运行
$('[id="starurl"]').length看是否有重复的id -
我无法弄清楚如何让 jsfiddle 工作对不起。我只有 1 个输入,我如何使用它:
$('[id="starurl"]').length -
我猜
$('#starurl').val()返回一个值,但不知何故您的服务器无法获取它。试试console.log($('#starurl').val());看看有没有值。
标签: php jquery ajax button sql-update