根据PHP数组值更改表单操作参数

时间:2016-02-10 18:42:13

标签: php arrays forms action

我正在尝试在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。

非常感谢任何帮助。

干杯

4 个答案:

答案 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>