2017-06-13 54 views
1

我现在有一个文本框在我设定的值,只要我按下切换按钮此功能被触发:传递多个值到另一个页面

function change1(){ 
    var myNewTitle = document.getElementById('myTextField1').value; 
    if(myNewTitle.length==0){ 
     alert('Write Some real Text please.'); 
    return; 
    } 
    document.getElementById("myLink").href="convert.php?var1=" + myNewTitle ; 
    var titles = document.getElementsByClassName('title1'); 
    Array.prototype.forEach.call(titles,title => { 
    title.innerHTML = myNewTitle; 
    }); 
} 

下面是文本框的例子:

Voornaam: <h3 class="title1">Kevin</h3> 
    <input type="text" id="myTextField1" /> 
    <input type="submit" id="byBtn" value="Change" onclick="change1()"/><br/> 

传递这样的值似乎工作得很好,但问题是我有一些其他的文本域和更多的更改功能。但是,我如何从多个文本域中传递多个值,例如我刚刚展示的那个文本域?

让我们假设文本字段1附加到函数change1,我有文本字段2附加到几乎相同的函数更改2.我如何使它,所以我传递来自文本字段2的另一个值,以便来自文本字段1和2传递给另一页。

编辑: 我已经试过了,像这样,但这是不行的,但是这是我多么希望它会工作的想法。

function change1(){ 
    var myNewTitle = document.getElementById('myTextField1').value; 
    if(myNewTitle.length==0){ 
     alert('Write Some real Text please.'); 
    return; 
    } 
    document.getElementById("myLink").href="convert.php?var1=" + myNewTitle +"&var2=" + myNewTitle2; 
    var titles = document.getElementsByClassName('title1'); 
    Array.prototype.forEach.call(titles,title => { 
    title.innerHTML = myNewTitle; 
    }); 
} 
function change2(){ 
    var myNewTitle2 = document.getElementById('myTextField2').value; 
    if(myNewTitle.length==0){ 
     alert('Write Some real Text please.'); 
    return; 
    } 
    document.getElementById("myLink").href="convert.php?var1=" + myNewTitle +"&var2=" + myNewTitle2; 
    var titles = document.getElementsByClassName('title2'); 
    Array.prototype.forEach.call(titles,title => { 
    title.innerHTML = myNewTitle2; 
    }); 
} 
+0

什么到PHP的关系? –

+0

我要参考的页面,因为这个原因决定放入。如有必要,我可以将其删除。 –

+0

如果没有相关性,它应该被删除,因为其他人(比如我自己)会查看php线程。 –

回答

1

试试这个:

document.getElementById("myLink").href="convert.php?var1=" + myNewTitle +"&var2=" + myNewTitle; 

&运算符用于在URL上传递值

+0

我用我尝试过的一个例子更新了我的帖子,但似乎没有为我工作。你能检查一下并帮助我吗? –

+0

@KevinBosman,是每个文本框有每个更改功能的必要条件。 –

+0

不幸的是,目前有必要。我想看到它自己也不一样..你总是可以建议一段没有不同功能的代码。 –

0

位原油,但可以为您刚才的所有输入组合成一个字符串,然后通过拆分字符串“ & _ &“在接收器?请参见下面的代码

var myString = ""; 
 
function change1(what){ 
 
\t var myNewTitle = document.getElementById(what).value; 
 
\t myString += "&_&" 
 
\t myString += myNewTitle; 
 
\t alert("var1="+myString); 
 
}
<head> 
 
<title>Untitled Document</title> 
 

 
</head> 
 

 
<body> 
 
<input type="text" id="myTextField1" /> 
 
<input type="submit" id="byBtn" value="Change" onclick="change1('myTextField1')"/><br/> 
 
</body>

编辑:刚刚看到你的原职的编辑。

如果您在PHP中使用explode(),上面的代码将会工作。见http://php.net/manual/en/function.explode.php

编辑2:

document.getElementById("myLink").innerhtml = '<a href="convert.php?var1=' + 
myString + '">click here</a>'; 
+0

不是我在这种情况下所希望的,这是一个项目,需要以我上面在编辑中提到的某种方式完成。这可能吗?我已经想出了如何用一种价值来做到这一点,但对我而言,不止一个是一个问题。 –

+0

这看起来不错,但是因为我对此相当陌生,你能否用我的代码展示一个例子?如果不是的话,我会尽力弄清楚自己。 –

+0

而不是msgbox你可以只用用户的container.innerhtml链接的地方,然后重新建立完全基于myString的链接。 – Andrew

0

您可以使用localStorage的()用于其他页面而不是网址传值传递多个值。

function change1(){ 
    localStorage.setItem("Txt1", document.getElementById('myTextField1').value); 
    localStorage.setItem("Txt2", document.getElementById('myTextField2').value); 
    localStorage.setItem("Txt3", document.getElementById('myTextField3').value); 
    localStorage.setItem("Txt4", document.getElementById('myTextField4').value); 
} 

第2页

alert(localStorage.getItem("Txt1")); 
+0

这可能会非常方便,以后优化我的代码,谢谢! –

+0

如果您的文本框值长度不受限制,那么它将是有风险的,因为URL长度对于不同的浏览器是有限的 –

+0

https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url在不同的浏览器 –

相关问题