如何从autocomplete中获取单击的输入无线电值,并以表单形式发送到php文件

如何从autocomplete中获取单击的输入无线电值,并以表单形式发送到php文件,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我正在用autocomplete做一个输入,我的用户可以从数据库中选择多个用户,我想在我的表单中提交这些选择用户,其中的操作将转到一个在数据库中插入的php文件 这就是输入,我希望选定的用户显示在pselecionados中,但用户一次选择一个: <form id="formCriaJogo" method="post" action="./components/insert.php"> <label>Other users</label> &

我正在用autocomplete做一个输入,我的用户可以从数据库中选择多个用户,我想在我的表单中提交这些选择用户,其中的操作将转到一个在数据库中插入的php文件

这就是输入,我希望选定的用户显示在pselecionados中,但用户一次选择一个:

<form id="formCriaJogo" method="post" action="./components/insert.php">
    <label>Other users</label>
    <input type="text" name="autor" id="autor" placeholder="Write users name" />
    <div id="autorLista"></div>
    <p id="selecionados"></p>

    <button type="submit">Insert</button>
</form>
另外,下面是执行搜索的search.php:

<?php

include_once "../connection/connection.php";

if (isset($_POST['query'])) {
    $link = new_db_connection();
    $stmt = mysqli_stmt_init($link);
    $output = '';
    $input = $_POST['query'];

    $query = "SELECT id_user, nome_user FROM users WHERE nome_user LIKE CONCAT(?, '%')";

    mysqli_stmt_prepare($stmt, $query);
    mysqli_stmt_bind_param($stmt, 's', $input);
    mysqli_execute($stmt);
    mysqli_stmt_bind_result($stmt, $id_user, $name_user);
    mysqli_stmt_store_result($stmt);

    if (mysqli_stmt_num_rows($stmt) > 0) {
        while (mysqli_stmt_fetch($stmt)) {
            $output .= "<input type='radio' value='" . $id_user . "' name='autor'>" . $name_user . "<br>";
        }
    } else {
        $output .= '<p>The user your looking for doesn't exist.</p>';
    }
    echo $output;
}
现在,单击的输入类型=包含用户id和名称的单选值我希望pselecionados中的用户名仅显示他选择的内容,并在提交我的表单时发送所选用户的id和名称。

您可以在jquery中创建一个数组,因此,无论何时从“自动完成”框中选择一个选项。。在jquery中将该值放入该数组中。我在下面的代码中使用了复选框而不是单选按钮,每当用户选择将数据插入数组的任何选项时,即:index,当单击insert按钮时,所选数据将显示在pselecionados标记中,并且还会调用ajax将所选数据发送到php页面具有附加值='$id_用户$“用户名称”您可以使用.split with delimiter拆分此文件,以获取userid和username。示例代码:

var指数=[]; //当复选框更改时 $'input[name=autor]'。changefunction{ //检查复选框是否已选中将其放入数组 如果$this.is':选中'{ index.push$this.val; console.logindex }否则{ //如果取消选中,则从数组中删除元素 如果index1=index.indexOf$this.val!=-1{ 指数.splice$.inarayindex1,指数1; 控制台。删除日志; } } }; //单击“插入”按钮时 $button.clickfunction{ //清除p标记内容 $pselecionados.html; 对于变量i=0;i

看看类似的问题:这也可能有用:或者@soalrib通过使用radio,您只能在一个radio组中选择一个选项,因为这里您需要选择多个。我建议您使用复选框。但我一次只有一个用户。e、 g:我搜索用户John,有两个选项,我选择第一个,然后我键入Liam,然后我选择Liam,这就是为什么我使用RadioOk,这一行我的用户可以在上面的问题中选择多个用户,这让我很困惑。尝试更改type=radio并检查上述代码是否有效。如果有任何错误,请告诉我。您是否有空闲时间,以便我们可以更好地交谈?我正在尝试console.log此函数中的某些内容,但什么也没有发生。$'输入[type=radio]”。ChangeFunction我正在重新考虑,它可以是复选框,但必须允许用户多次搜索并一次选择多个用户,或者只选择一个@Swati
<?php

include_once "../connection/connection.php";

if (isset($_POST['query'])) {
    $link = new_db_connection();
    $stmt = mysqli_stmt_init($link);
    $output = '';
    $input = $_POST['query'];

    $query = "SELECT id_user, nome_user FROM users WHERE nome_user LIKE CONCAT(?, '%')";

    mysqli_stmt_prepare($stmt, $query);
    mysqli_stmt_bind_param($stmt, 's', $input);
    mysqli_execute($stmt);
    mysqli_stmt_bind_result($stmt, $id_user, $name_user);
    mysqli_stmt_store_result($stmt);

    if (mysqli_stmt_num_rows($stmt) > 0) {
        while (mysqli_stmt_fetch($stmt)) {
            $output .= "<input type='radio' value='" . $id_user . "' name='autor'>" . $name_user . "<br>";
        }
    } else {
        $output .= '<p>The user your looking for doesn't exist.</p>';
    }
    echo $output;
}