在mysql上更新echo“select option”

时间:2017-10-03 12:59:41

标签: 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';  
 }  
 ?>

2 个答案:

答案 0 :(得分:0)

您想在Dropbox周围创建一个表单;现在你可以使用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();
    }
}

答案 1 :(得分:0)

您好我找到了解决方案的答案。

我的ajax需要有一个单独的功能。

相关问题