将JavaScript变量传递给HTML输入框和(在PHP文件中使用)

时间:2015-03-31 04:58:38

标签: javascript php html variables

我试图将JavaScript变量传递给隐藏输入按钮的值,以便在我的PHP文件输出中使用。

我的HTML是:

<input type = "hidden"  id = "location2" name = "location2" value = ""/>

我正在使用这个onclick =&#34; myFunction();&#34;在我的&#34;提交表格&#34;输入以运行该函数,因为它无法在window.load()

中完成

下面我的JavaScript是从另一个函数调用索引并将文本分配给变量&#39; location&#39; (我知道这听起来很奇怪,但这是我到目前为止工作的唯一方式):

function myFunction() {
var x = document.getElementById("box2").selectedIndex;
var y = document.getElementById("box2").options;
var location=(y[x].text);

 document.getElementById("location2").value=(location);

 }

任何帮助都会非常感激,因为我真的很挣扎并且已经在这方面工作了一段时间(你可能会说,我真的不知道我在做什么) - 我只需要调用它的价值将此变量放入我的PHP文件输出中,我的大部分Web表单都已完成。

非常感谢

马库斯

我刚刚更改了我的HTML,如下所示 我已从提交

中删除了myFunction

我添加了以下HTML按钮:

 <button onclick="myFunction();" id = "location2" name = "location2" value="">Click me</button>

变量正在传递!!!!唯一的问题是,当我按下onclick按钮时,它现在正在提交我的表格!!

我可以用这段代码替换我以前的提交按钮吗?

感谢每个人对他们的帮助!!

3 个答案:

答案 0 :(得分:1)

我不确定你在做什么但下面的例子可能对你有帮助。它将发布值以及选项文本。

这里我们使用print_r从AJAX请求中打印$_POST数组。使用此方法,您应该能够调试问题。

<!DOCTYPE html>
<html>
<body>
<?php if($_POST) { 
    print_r($_POST); die;
} ?>
<form name="" id="" method="post" >
Select a fruit and click the button:
<select id="mySelect">
  <option>Apple</option>
  <option>Orange</option>
  <option>Pineapple</option>
  <option>Banana</option>
</select>
<input type = "hidden"  id = "location2" name = "location2" value = ""/>
<input type = "hidden"  id = "locationname" name = "locationname" value = ""/>
<button type="submit" id="submit">Display index</button>
</form>
<script>
function myFunction() {
    var x = document.getElementById("mySelect").selectedIndex;
    var y = document.getElementById("mySelect").options;
        //alert("Index: " + y[x].index + " is " + y[x].text);
    document.getElementById("location2").value=(y[x].index);
        document.getElementById("locationname").value=(y[x].text);
    //alert($("#location2").val());
}

var submit = document.getElementById('submit');
submit.onsubmit = function(e){
    myFunction();
};


</script>
</body>
</html>

答案 1 :(得分:0)

是的,默认情况下使用按钮标记很好,它就像表单标记内的提交按钮一样。您还可以使用属性type='button'将其设置为按钮(不会提交表单)。

被修改

buttoninput type='submit'只有在form标记内放置form时才会提交。{/ p>

<form action='http://www.stackoverflow.com/'>
  <button>stackoverflow</button> <!-- this works -->
</form>

<form action='http://www.stackoverflow.com/'></form>
<button>stackoverflow</button><!-- this won't work -->

var go = function() {
  document.forms[0].submit();
};
<form action='http://www.stackoverflow.com/'></form>
<button onclick='go()'>stackoverflow</button><!-- still works -->

答案 2 :(得分:0)

我假设您的表单方法是&#39; POST&#39;和动作值是相同的php页面,你希望看到&#39; location2&#39;隐藏的输入值,如果是这种情况,您可以使用$ _POST [&#39; location2&#39;]来获取该php页面中的值。