如何处理多个表单?,在提交时停止重新加载页面?

时间:2017-08-13 19:21:27

标签: php jquery html ajax forms

  1. 第一种形式是客户可以通过Make Model和Price作为单选按钮获取所有产品,其值为数据库中的id

  2. 客户端点击提交。

  3. PHP询问提交按钮的设置名称

  4. 如果设置为echos第二种形式,客户可以在其中添加他或她选择的产品的规格。表格是输入类型文本和textarea的

  5. 然后php询问第二种形式的提交按钮的isset名称

  6. 但问题是当客户按下提交第二张表格时

    如果第一个表单未设置,那么剩下的代码应该检查第二个表单是否不存在,因为两个表单都会退出代码才能工作,我可以得到它,如果我没有找到停止页面重新加载提交

    我尝试使用AJAX,但MySQL查询会抛出输入为空的错误。

    JavaScript代码:

    <script>
    $( document ).ready(function() {
      $('.link').click(function(){
        $.post('ajax1.php?strana='+$(this).attr('strana'), function(odgovor) {
          $('#odgovor').html(odgovor);
        });
      });
    });
    </script>
    

    PHP代码:

    echo  "<div class='container' id='cars'>
         <div class='row'>
          <div class='col-md-4 col-md-offset-4 text-center'>
            <form action='' method='post' class='loginForm' id='cmsC' name='cmsC' enctype='multipart/form-data'>
              <div class='input-group'>";
                $sql="select * from produkt ";
                $rez=mysqli_query($db,$sql);
                while($red = mysqli_fetch_object($rez))
                {
                echo "<input type='radio' name='proizvod' value='$red->id'> ". $red->marka." ". $red->naziv." ". $red->cena."<br>";
              }
              echo "<input type='submit' id='btnsubmit1' name='btnsubmit1' class='form-control' value='Chouse Product'  >
            </div>
          </form>
        </div>
      </div>
    </div>";
    
    if (isset($_POST['btnsubmit1'])) {
      $id = $_POST['proizvod']; 
    
      echo "<div class='container'>
      <div class='row'>
        <div class='col-md-4 col-md-offset-4 text-center'>
          <form action='' method='post' class='loginForm' id='cms' name='cms' enctype='multipart/form-data'>
            <div class='input-group clear'>
              <input type='text' id='dotm' name='dotm' class='form-control'
              placeholder='Description Of The Motherboard ( ASUS H81M-R/C/SI )'>
    
              <input type='text' id='top' name='top' class='form-control'
              placeholder='Type Of Processor ( Intel® Core™ i3 Processor )'>"; // there is bunch more of this type for input type  
    
              if (isset($_POST['submit'])) {
                      // Variable with data from form
                      $description_of_the_motherboard = $_POST['dotm'];
                      $type_of_processor = $_POST['top'];
                      $processor_description = $_POST['pd'];
                      $type_of_graphics_card = $_POST['togc'];
    
                      if(strlen($description_of_the_motherboard)!="") {
                        if(!preg_match("/[^\w\s,.\\\'\"\-\/]/", $description_of_the_motherboard) {
                          $sql = "insert query";
                          mysqli_query($db, $sql); 
    
                      } else echo "<script> 
    
                        alert('Your input can not have special characters '); 
    
                      </script>"; 
                }             
              } 
    }
    

2 个答案:

答案 0 :(得分:1)

只需添加一个标记即可避免重复请求。

示例:

{{1}}

答案 1 :(得分:0)

数据大部分都在第二个参数的数组中。

<script>
    $( document ).ready(function() {
        $('.link').click(function(){
            $.post('ajax1.php',{strana:$(this).attr('strana'),function(odgovor){
                $('#odgovor').html(odgovor);
            });
        });
    });
</script>