javascript - 更新 mysql 上的 echo "select option "

标签 javascript php html mysql

我有一个表单可以更新表中的添加内容。该表是实时检索的。这意味着一旦提交表格,您就可以查看表格上的内容。我在表格内容上添加了一个选择选项下拉菜单。我不知道一旦用户选择了他的选项,如何将此信息返回到 mysql。正如代码中所示,我的文件是一个 PHP 文件。

我的选择选项是通过javascript更新的,但它不会更新mysql。

请指导我。谢谢您

          while($row = mysqli_fetch_assoc($resultset)) 

{

        echo "<tr id=\"row\">
           <td class=\"fname\" data-id1=".$row["contact_id"]." contenteditable>" . $row['fname'] ." </td>
           <td class=\"lname\" data-id2=".$row["contact_id"]." contenteditable>" . $row['lname']. "</td>
           <td>" . $row['contact']."</td>
           <td>
              <select id4=".$row['contact_id']." name=\"rsvp\" onchange = \"fetch_select(this.value)\">
              <option name=\"not-done\" value=\"not-done\">Not done</option>
              <option name=\"attending\" value=\"attending\">Attending</option>
              <option name=\"not-attending\" value=\"not-attending\">Not-attending</option>
              <option name=\"maybe\" value=\"maybe\" selected>Maybe</option>
              </select>
            </td>
           <td><button id3=".$row['contact_id']." name=\"button\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i></button>
             <tr>";

}
        echo "</table>";
        mysqli_close($con);
 ?> 







$('select').on('change', function()
{
  // Show an alert
  alert( "The new value of the select is " + $(this).val() );
  var id=$(this).attr("id4");
  var val=$(this).val();

  function fetch_select(val ,id) 
   {  
       $.ajax({  
            url:"updateselect.php",  
            method:"POST",  
            data:{rsvp:val , id:id},  
            dataType:"text",  
            success:function(data){  
                 alert(data);  
            }  
       });  
  }
});



    <?php  
 $connect = mysqli_connect("localhost", "root", "", "registration");  
 $id = $_POST["id"];  
 $rsvp = $_POST["val"];  

 $sql = "UPDATE guestlist SET rsvp ='".$rsvp."' WHERE contact_id='".$id."'";  
 if(mysqli_query($connect, $sql))  
 {  
      echo 'Data Updated';  
 }  
 ?>

最佳答案

您想要创建一个围绕您的保管箱的表单;现在您可以使用 ajax 提交它,或者只是将其提交到您的调用的不同页面。

它看起来像这样:

注意:将 name 参数添加到您的选择中,以便您实际上可以使用 $_POST 获取它并处理数据。

<form method="post" action="rsvp_handler.php">
    <?php
    while($row = mysqli_fetch_assoc($resultset)) 
    { 

        echo "<tr id=\"row\">
        <td class=\"fname\" data-id1=".$row["contact_id"]." contenteditable>" . $row['fname'] ." </td>
        <td class=\"lname\" data-id2=".$row["contact_id"]." contenteditable>" . $row['lname']. "</td>
        <td>" . $row['contact']."</td>
        <td>
          <select name='rsvp' id='rsvp'>
              <option value=\"not-done\">Not done</option>
              <option value=\"attending\">Attending</option>
              <option value=\"not-attending\">Not-attending</option>
              <option value=\"maybe\" selected>Maybe</option>
          </select>
        </td>
        <td><button id3=".$row['contact_id']." name=\"button\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i></button>
   <tr>";

}
        echo "</table>";
        mysqli_close($con);
   ?> 
    <button type="submit" name="submit">Submit</button>
</form>

然后对于 rsvp_handler.php 页面,只需获取发布结果,然后将所需的数据发送到您的数据库:

if (isset($_POST['submit']))
{
    $rsvp = $_POST['rsvp'];
    //... any other elements

    // create your query here
    $sql = "INSERT INTO " . $table . " (rsvp, row2, row3) VALUES (?, ?, ?)";
    // best way is to create prepared statements
    if($stmt = $mysqli->prepare( $sql ))
    {
        // bind the params
        $stmt->bind_param('sss', $rsvp, $val2, $val3);
        // execute the query
        $stmt->execute();
        // close the connection
        $stmt->close();
    }
}

关于javascript - 更新 mysql 上的 echo "select option ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46545230/

相关文章:

javascript - 基本对象结构和 JavaScript 调用

javascript - fullcalendar.js 插槽突出显示

php - 是否可以使用 PHP 对 .ini 文件使用内联注释?

python - 使用线帽和线连接的设置绘制线条

javascript - my/index.html 正在重定向到/[object Object]

相当于 Python 的 values() 字典方法的 Javascript

javascript - 如何控制div的水平滚动?

php - HTTP 基本身份验证与 key

php - num_rows 属性永远无法预测

javascript - 如何使我的网站在移动设备上的 View 尺寸更小以适合移动设备屏幕