Javascript 发布内容<;部门>;单击按钮可转到另一页

Javascript 发布内容<;部门>;单击按钮可转到另一页,javascript,php,ajax,Javascript,Php,Ajax,我有函数showuser()在表单提交事件中发布变量sent 我在同一个函数中得到的变量很少,我想用sent发布它,但在另一个页面上没有收到它们 这是我的密码,我的错是什么 function showUser(form, e) { e.preventDefault(); e.returnValue=false; var xmlhttp; var sent = form.elements['sent'].value; var sent2

我有函数
showuser()
在表单提交事件中发布变量
sent

我在同一个函数中得到的变量很少,我想用
sent
发布它,但在另一个页面上没有收到它们

这是我的密码,我的错是什么

function showUser(form, e) {
      e.preventDefault();
      e.returnValue=false;
      var xmlhttp;
      var sent = form.elements['sent'].value;
      var sent2 = form.elements['sent2'].value;  // sent2 is the name of one of <div> in the form where sent is there. But getting error : "TypeError: form.elements.sent2 is undefined"

      var divElements = document.getElementById('d1').innerHTML;
      var text1 = document.getElementById('previewUrl').innerText || document.getElementById('previewUrl').textContent;
      var text2 = document.getElementById('previewTitle').innerText || document.getElementById('previewTitle').textContent;
      var text3 = document.getElementById('previewDescription').innerText || document.getElementById('previewDescription').textContent;

     // I want to post text1,2,3 along with sent to another page where sent get received

      if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
      }
      else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange = function(e) {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
          document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
        }
      }
        xmlhttp.open(form.method, form.action, true);
      xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

      xmlhttp.send('sent=' + sent + 'text1=' + text1 + 'text2=' + text2 + 'text3=' + text3);
    }
函数showUser(表格e){
e、 预防默认值();
e、 returnValue=false;
var-xmlhttp;
var sent=form.elements['sent'].value;
var sent2=form.elements['sent2'].value;//sent2是其中一个元素的名称,该元素在发送到表单中的位置。但获取错误:“TypeError:form.elements.sent2未定义”
var divElements=document.getElementById('d1').innerHTML;
var text1=document.getElementById('previewUrl').innerText | | document.getElementById('previewUrl').textContent;
var text2=document.getElementById('previewTitle').innerText | | document.getElementById('previewTitle').textContent;
var text3=document.getElementById('previewDescription').innerText | | document.getElementById('previewDescription').textContent;
//我想发布文本1,2,3连同发送到另一个页面,在那里发送得到接收
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}
否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(e){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(form.method、form.action、true);
setRequestHeader('Content-Type','application/x-www-form-urlencoded');
send('sent='+sent+'text1='+text1+'text2='+text2+'text3='+text3);
}
数据来自以下表格:

    <form>
     <input type="text" id="text" name="sent" contenteditable="true"  style=" text-align: left; height: 30px; width:512px; " placeholder="Enter URL ..."/></input>
     <div id="d1" height="40" width="60" name="sent2"  style=" border:1px solid black; z-index: 1; left: 950px; top:80px; position: absolute; margin-top: 0px" placeholder="Preview title" >
             </div>
             <div id="d2" height="40"  style="border:1px solid black; z-index: 1; left: 950px; top:100px; position: absolute; margin-top: 0px; min-width:60; overflow:auto" placeholder="Preview Url">
             </div>
             <div id="d3" height="80"  border="1" style="border:1px solid black; z-index: 1; left: 950px; top:140px; position: absolute; margin-top: 0px" placeholder="Preview Desciption">
             </div>
//Some other content
</form>

//其他一些内容
我还尝试使用以下方法获取表单提交事件中的内容值:

 var sent2 = form.elements['sent2'].value; //sent2 name of <div id="d1">
var sent2=form.elements['sent2'].value//sent2的名称

但是运气不好

您的键/值字符串缺少分隔变量的
&
字符。您还应该运行它们,以便对特殊字符进行URL编码,并且不会破坏格式

sent = encodeURIComponent(sent);
text1 = encodeURIComponent(text1);
text2 = encodeURIComponent(text2);
text3 = encodeURIComponent(text3);

xmlhttp.send('sent=' + sent + '&text1=' + text1 + '&text2=' + text2 + '&text3=' + text3);
//                             ^ here              ^ here              ^ here 

您是对jQuery感兴趣还是对纯JavaScript感兴趣?它似乎是纯JavaScript。@abc123:pure JS,你为什么在这里问这个问题?谢谢,这意味着在发送变量之前,在最后获取变量
text1,2,3
之后,我应该
encodeURIComponent
对吧?是的,在哪里执行
encodeURIComponent()
,只要你在某个时候执行。我只是为了可读性把它加进去了。我本可以在
send()
行中添加每个变量,但可读性较差。