PHP中的$ _post如何工作

时间:2017-07-12 10:20:45

标签: php jquery

我将变量从jquery传递给php,并尝试通过提交按钮提交我的表单,但我的变量在$ _POST ['提交']中不可见。

我有一个带有列表的html页面,我在其中选择了多个值并将其与':'连接起来。并将其传递给PHP。 一旦我按下表单上的提交按钮,我想在我的数据库表中插入所选列表。

请有人解释一下。 的 HTML

<!doctype html>
       <html lang="en">
       <head>

      <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
      </head>
      <body>
      <form action="new_page.php" method="post">
    <select class= "sweet" name="sweets" multiple="multiple">
      <option>Chocolate</option>
      <option >Candy</option>
      <option>Taffy</option>
      <option>Caramel</option>
      <option>Fudge</option>
      <option>Cookie</option>
    </select>
    <input type="submit" name ="submit" value ="submit"  />
    <script>
    $(function(){ 
        var s_type="";
        $('.sweet').click(function() {
            if(s_type.length){
                s_type+= " : " + $(this).val(); 
            }else{
                s_type+=  $(this).val();
            }
            $.post('new_page.php', 'sweet=' +s_type, function (response){
                alert(response);
            });

        });
    });
    </script>
    </body>
    </html>`

PHP页面new_page.php

<?php
   if(isset($_POST['sweet'])){
       $filename = $_POST['sweet'];
   }
   if(isset($_POST['submit'])) {    
        if(isset($_POST['sweet'])){
            $filename = $_POST['sweet'];
            echo '*****profile   ' .$filename;
        }
        $id= 'A';
        $db =  new PDO("sqlite:test.db");
        $q1 = $db->prepare('INSERT INTO test_sweet(id,sweets) values(?,?)');
        $q1->execute(array($id,$filename));           
   }
?>

1 个答案:

答案 0 :(得分:1)

编辑:我将在此添加此评论以及: 如果您希望<select>中的多个值更改为<select multiple>并且您已完成,则此JS是一种相当不直观的解决方法。 (甚至更多,因为你不能轻易删除你选择的值而不重新加载整个页面)

可能试一试,请注意,它是干编码的(未经测试):

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
  </head>
  <body>
    <form id="sweetForm">
      <select id="selSweets" name="sweets" multiple="multiple">
        <option>Chocolate</option>
        <option >Candy</option>
        <option>Taffy</option>
        <option>Caramel</option>
        <option>Fudge</option>
        <option>Cookie</option>
      </select>
      <input id="submit" type="submit" name="submit" value="submit" />
    </form>
    <script>
      $(function() { 
        var sweets = [];
        $('#selSweets').change(function() {
          var val = $(this).val();
          if (sweets.indexOf(val) == -1) // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Browser_compatibility for browser compatibility on indexOf()
            sweets.push(val);
        });

        $("#sweetForm").submit(function(e)
        {
          $.post(
            'new_page.php',
            {
              sweets: sweets
            },
            function(data, status, jqXHR)
            {
              console.log(data);
            }
          );
          e.preventDefault();
        });
      });
    </script>
  </body>
</html>