首页 > 解决方案 > jQuery 执行 PHP 文件并添加/删除类

问题描述

我正在尝试为我的网站创建一个投票脚本,我有以下 php

<?php
echo "<form id=\"$id\" action=\"javascript:updateId()\">";
echo "<input type=\"hidden\" name=\"$id\" value=\"1\">";
echo "<button type=\"submit\" value=\"submit\" class=\"far fa-heart\"></button>";
echo "</form>";
?>

$id是 sql 查询的结果,所以我有 50 个具有唯一 $id 的表单

并尝试使用以下内容运行 vote.php

<script>
function updateId()
{
    const form = document.getElementById('#' + id);
    const data = new FormData();
    data.append('name', form.name.value);

    fetch('./vote.php', {method: 'POST', body: data}).then(response => {
        if (!response.ok){
            throw new Error('Network response was not ok.');
        }
    }).catch(err => console.log(err));

}
</script>

任何帮助都会非常有用

标签: javascriptphpjquery

解决方案


最好idupdateId(). 还有几个错误:

  • getElementById不使用#;
  • 如果要访问某个表单元素,则需要按名称值本身访问 if ,即应该是name="name"; 可能你想要那里id的值,但如果你将它作为参数传递,那么这个隐藏字段就不需要了。但是,我将其保留原样,因为我不确定您实际上需要什么价值。
<?php
    echo "<form id=\"$id\" action=\"javascript:updateId($id)\">";
    echo "<input type=\"hidden\" name=\"name\" value=\"1\">";
    echo "<button type=\"submit\" value=\"submit\">Submit</button>";
    echo "</form>";
?>

<script>
    function updateId(id) {
        const form = document.getElementById(id);
        const data = new FormData();
        data.append('name', form.name.value);

        fetch('./vote.php', {method: 'POST', body: data}).then(response => {
            if (!response.ok) {
                throw new Error('Network response was not ok.');
            }
        }).catch(err => console.log(err));
    }
</script>

推荐阅读