我正在尝试在PHP中创建一个表单,在提交时,action =中的URL会根据所选的选项进行更改。 代码如下:
$myArray = array(
'389'=>'Value 1',
'533'=>'Value 2'
);
echo'<form action="https://example.com/value.php?time=today&value[]='.$num.'" method="post">';
echo'<select name="value">';
foreach($myArray as $num=>$value){
echo'<option value="'.$num.'">'.$value.'</option>';
}
echo'</select>';
echo'<input type="submit" value="Submit">';
echo'</form>';
我认为它不起作用,因为PHP代码是在选择值之前生成的。不确定我是否需要在其中实现一些jQuery或Javascript。
非常感谢任何帮助。
干杯
答案 0 :(得分:3)
要更改istream& operator>>(istream& cin, Fraction& f)
{
char ch;
cin >> f.num >> ch >> f.den;
return cin;
}
表单属性的值,您必须使用javascript。
但是,如果提供的示例是切合实际的,您只需将表单方法更改为action
:
GET
答案 1 :(得分:0)
如果您自然地发布表单,您可以从选择下拉列表中获取所需信息。您可能需要将您的选择dropname name命名为&#34; somethingBetter&#34;。请查看$ _POST和$ _GET以更好地理解这一点。在您的PHP代码中,使用var_dump()输出$ _POST和/或$ _GET以查看我的意思。
如果您想要更复杂的解决方案。使用jQuery .ajax来完全控制表单将发布到的位置。这对您的问题可能有点过分。
答案 2 :(得分:0)
正如你所说的那样,你必须使用一些客户端语言,比如JavaScript和jQuery。以下是如何通过选择选项修改表单的操作属性的快速示例:
$('#actionSelect').change(function() {
$form = $('#form');
console.log(this.value);
switch (this.value) {
case "1":
$form.attr("action", "page1.php");
break;
case "2":
$form.attr("action", "page2.php");
break;
case "3":
$form.attr("action", "page3.php");
break;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="actionSelect">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<form id="form" action="page1.php">
<input type="text" name="textInput" />
</form>
答案 3 :(得分:0)
感谢大家的意见和建议。我决定沿着一些javascript的路线前进。
<script>
window.onload = function(){
var sel = document.getElementById('report');
sel.onchange = function () {
document.getElementById("abc").href = "https://example.com/value.php?time=today&value[]=" + this.value + "&date=today";
}
};
</script>