Php 我如何通过特殊考试<;李>;jquery的值

Php 我如何通过特殊考试<;李>;jquery的值,php,jquery,html,Php,Jquery,Html,我有一个html文件,如- HTML-index.php <form name="myform" action="data.php"> <ul> <li onclick=myform.submit();> <input type="hidden" name="soc" value="1">google</li> <li onclick=myform.submit();> <i

我有一个html文件,如-

HTML-index.php

<form name="myform" action="data.php">
  <ul>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="1">google</li>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="2">facebook</li>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="3">twitter</li>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="4">none</li>
  </ul>
</form>
<?php
$val = &_POST["soc"];
echo $val;
?>

  • 谷歌
  • 脸谱网
  • 推特
  • 没有
data.php

<form name="myform" action="data.php">
  <ul>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="1">google</li>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="2">facebook</li>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="3">twitter</li>
    <li onclick=myform.submit();>
      <input type="hidden" name="soc" value="4">none</li>
  </ul>
</form>
<?php
$val = &_POST["soc"];
echo $val;
?>

在这种情况下,如果我单击其中任何一个,它只传递最后一个
  • 值4。 我只想在单击的位置获取此值。

    我的意思是,如果我点击facebook,那么我可以在data.php文件中获得值“2”。

    而不是
    表单
    只需使用带有url参数的
    标记,这可能是更好、最简单的方法

    HTML:

    <ul>
      <li> <a href="data.php?soc=1">google</a>
      </li>
      <li> <a href="data.php?soc=2">google</a>
      </li>
      <li> <a href="data.php?soc=3">google</a>
      </li>
      <li> <a href="data.php?soc=4">google</a>
      </li>
    </ul>
    
    <?php
    $val = $_GET["soc"];
    echo $val;
    ?>
    
    PHP:

    <ul>
      <li> <a href="data.php?soc=1">google</a>
      </li>
      <li> <a href="data.php?soc=2">google</a>
      </li>
      <li> <a href="data.php?soc=3">google</a>
      </li>
      <li> <a href="data.php?soc=4">google</a>
      </li>
    </ul>
    
    <?php
    $val = $_GET["soc"];
    echo $val;
    ?>
    

    不能使用同名的多个隐藏输入,而期望它们作为独立的表单元素。提交表格时,所有隐藏输入均以soc=1&soc=2&soc=3&soc=4的形式发送 使用name=“soc”保留一个隐藏输入,并在每个onclick属性中更改回调,如下所示:

    document.forms.myform.soc=1;document.formsmyform.submit();
    

    将数字更改为每个li元素的相应值有多种方法

    为每个
    li
    创建不同的表单

    <ul>
        <form name="myform1" action="data.php">  
            <li onclick=myform1.submit();><input type="hidden" name="soc" value="1">google</li>
        </form>
        <form name="myform2" action="data.php">  
            <li onclick=myform2.submit();><input type="hidden" name="soc" value="2">facebook</li>
        </form>
    
    </ul>
    
    • 谷歌
    • 脸谱网
  • 使用jquery通过单击事件替换值
  • Html

    
    
      谷歌 facebook 推特
    Js

    <script>
    $(document).ready(function(){
        $(li).click(function(){
            var val = $(this).attr(id);
            $("#myid").val(val);
            myform.submit();
            return true;
        })
    })
    </script>
    
    
    $(文档).ready(函数(){
    $(li)。单击(函数(){
    var val=$(this.attr(id);
    $(“#myid”).val(val);
    myform.submit();
    返回true;
    })
    })
    
  • url
    中的值作为查询字符串传递

  • 在ajax中,您应该使用
    $val=$\u POST[“soc”]
    。您可以将ajax请求用作

    JS

    $(function() {
    
      $('.opt').on('click', function(){
    
        var val = $(this).val();
        $.ajax({
          url: "data.php",
          type: 'POST',
          data: {soc: val},
          success: function() {
            console.log('success');
          }
        })
      })
    })
    
    function submitMyForm(val) {
        $.ajax({
          url: "data.php",
          type: 'POST',
          data: {soc: val},
          success: function() {
            console.log('success');
          }
       })
    }
    
    HTML

    <ul>
    <li class="opt"><input type="hidden" name="soc" value="1">google</li>
    <li class="opt"><input type="hidden" name="soc" value="2">facebook</li>
    <li class="opt"><input type="hidden" name="soc" value="3">twitter</li>
    <li class="opt"><input type="hidden" name="soc" value="4">none</li>
    </ul>
    
    <form name="myform" action="data.php">
      <ul>
        <li onclick="submitMyForm(1)">
          google
        </li>
        <li onclick="submitMyForm(2)">
          facebook
        </li>
        <li onclick="submitMyForm(3)">
          twitter
        </li>
        <li onclick="submitMyForm(4)">
            none
        </li>
      </ul>
    </form>
    
      谷歌 facebook 推特
    PHP:

    <?php
    $val = $_POST["soc"];
    echo $val;
    ?>
    

    如果您正在寻找纯jQuery/JS解决方案

    HTML

    <ul>
    <li class="opt"><input type="hidden" name="soc" value="1">google</li>
    <li class="opt"><input type="hidden" name="soc" value="2">facebook</li>
    <li class="opt"><input type="hidden" name="soc" value="3">twitter</li>
    <li class="opt"><input type="hidden" name="soc" value="4">none</li>
    </ul>
    
    <form name="myform" action="data.php">
      <ul>
        <li onclick="submitMyForm(1)">
          google
        </li>
        <li onclick="submitMyForm(2)">
          facebook
        </li>
        <li onclick="submitMyForm(3)">
          twitter
        </li>
        <li onclick="submitMyForm(4)">
            none
        </li>
      </ul>
    </form>
    
    JSFiddle


    您可以使用事件处理程序吗?对不起,&_POST[“soc”];是美元后[“soc”];我真的不知道这件事。我能得到一些参考资料吗?因为输入是隐藏的,用户不进行交互,它们都被归类为集合,最后一个“4”覆盖了1、2和3。使用输入型无线电和隐藏css,然后得到值很高兴知道这一点。欢迎:)