我有一个像
这样的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>
data.php
<?php
$val = &_POST["soc"];
echo $val;
?>
如果我点击其中的任何一个,它只传递最后<li>
值4。
我想在我点击的位置只获得此<li>
值
我的意思是说,如果我点击Facebook,那么我可以在data.php文件中获得值'2'。
答案 0 :(得分:3)
而不是form
只使用带有url参数的a
标记,这可能是更好更简单的方法
<强> 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:强>
<?php
$val = $_GET["soc"];
echo $val;
?>
答案 1 :(得分:1)
您不能使用具有相同名称的多个隐藏输入,并期望它们表现为独立的表单元素。提交表单时,所有隐藏的输入都以soc = 1&amp; soc = 2&amp; soc = 3&amp; soc = 4发送 保留一个名为=&#34; soc&#34;的隐藏输入。并在每个onclick属性中更改回调,如:
document.forms.myform.soc=1;document.formsmyform.submit();
将数字更改为每个li元素的相应值
答案 2 :(得分:1)
有很多方法可以做到这一点
为每个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>
HTML
<form name="myform" action="data.php">
<ul>
<li id="1">google</li>
<li id="2">facebook</li>
<li id="3">twitter</li>
<li id="4">none</li>
<input type="hidden" name="custom" value="" id="myid" />
</ul>
</form>
<强>的js 强>
<script>
$(document).ready(function(){
$(li).click(function(){
var val = $(this).attr(id);
$("#myid").val(val);
myform.submit();
return true;
})
})
</script>
url
中的值作为查询字符串传递。答案 3 :(得分:0)
在ajax中你应该使用$val = $_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');
}
})
})
})
<强> 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>
PHP:
<?php
$val = $_POST["soc"];
echo $val;
?>
答案 4 :(得分:0)
如果您正在寻找纯粹的jQuery / JS解决方案
<强> HTML 强>
<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>
<强> JS 强>
function submitMyForm(val) {
$.ajax({
url: "data.php",
type: 'POST',
data: {soc: val},
success: function() {
console.log('success');
}
})
}
<强>的jsfiddle 强>