【问题标题】:PHP+AJAX+MYSQL Last form entry creates a new column in MySqlPHP+AJAX+MYSQL 最后一个表单条目在 MySql 中创建一个新列
【发布时间】:2016-08-08 21:30:58
【问题描述】:

Live site now

我想创建一个表单,用户可以在其中添加下一个用户必须回答的新问题。

我想使用函数 ALTER TABLE 但我不确定如何在 $_Post 中调用它以及如何动态地 $_Get 越来越多的列。有什么建议吗?我卡住了,很想有人指出我正确的方向。

另外,我正在使用引导程序,如果这甚至会有所作为。

  <body>  
       <div class="container">  
            <br />  
            <br />  
            <h2 align="center">Dynamically Add or Remove input fields in PHP with JQuery</h2>  
            <div class="form-group">  
                 <form name="add_name" id="add_name">  
                      <div class="table-responsive">  
                           <table class="table table-bordered" id="dynamic_field">  
                                <tr>  
                                    <td> 
                                        <input type="text" name="question[]" placeholder="Ask a question" class="form-control" />
                                        </td>
                                         <td><input type="text" name="name[]" placeholder="Enter your Name" class="form-control name_list" /></td>   
                                        <td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>

                                </tr> 
                           </table>  
                           <input type="button" name="submit" id="submit" class="btn btn-info" value="Submit" />  
                      </div>  
                 </form>  
            </div>  
       </div>  
  </body>  

 <script>  
 $(document).ready(function(){  
      var i=1;  

  $('#submit').click(function(){            
       $.ajax({  
            url:"name.php",  
            method:"POST",  
            data:$('#add_name').serialize(),  
            success:function(data)  
            {  
                 alert(data);  
                 $('#add_name')[0].reset();  
            }  
       });  
  });  
 });  
 </script> 

【问题讨论】:

  • 不要为此使用 alter table。去“垂直”。每个问题都应该是表中的,而不是列。然后你可以使用INSERT,这更容易。

标签: php jquery mysql ajax dynamic


【解决方案1】:

第一个:你需要使用e.preventDefault();来防止页面重新加载。

2nd: 很好用$('#add_name').on('submit') 代替 $('#submit').click.

3rd:您的代码应如下所示:

 <script>  
 $(document).ready(function(){  
      var i=1;  

  $('#add_name').on('submit' , function(e){   // <<<<<<<<<<<<<<<<<<< 2
       e.preventDefault();                    //<<<<<<<<<<<<<<<<<<<< 1     
       $.ajax({  
            url:"name.php",  
            method:"POST",  
            data:$(this).serialize(),  
            success:function(data)  
            {  
                 alert(data);  
                 $('#add_name')[0].reset();  
            }  
       });  
  });  
 });  
 </script> 

在 name.php 中

<?php 
  print_r($_POST);
  // reset of php code here
?>

你也可以看看

Retrieving serialize data in a php file called using ajax

jQuery AJAX form data serialize using PHP

【讨论】:

    【解决方案2】:

    你的 js 文件顺序应该是这样的

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>  
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
    <script src="scripts/main.js"></script> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多