需要通过json格式的javascript向服务器发送数据
我无法将数据从表单发布到服务器,但必须是json格式并使用ajax。如何在使用javascript时做到这一点&不能使用Jquery这里是我的问题…需要通过json格式的javascript向服务器发送数据,javascript,php,ajax,json,Javascript,Php,Ajax,Json,我无法将数据从表单发布到服务器,但必须是json格式并使用ajax。如何在使用javascript时做到这一点&不能使用Jquery这里是我的问题… <form id="contactus" action="http://wirehoer.net" method="post"> <fieldset> <!-- Contact Name --> <label for="name">Name:</label>
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
还要提前感谢
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
- 如何通过处理HTTP 200并使用ajax将其转换并发送到服务器
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
HTML
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
联系我
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
姓名:
请输入名字和姓氏
电邮:
请输入电子邮件地址
电话:
电话号码必须仅包含号码
地位:
客户
搭档
小贩
把你的通讯寄给我
销售额
支持
信息:
请描述一下你的要求
发送
重置
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
> //This will get the data of the fields
> document.getElementById('send').onclick=function(evt) {
>
> var errors = false; //Gets all the inputs from contact form var
> myNodeList = document.querySelectorAll('input, textarea, select');
>
> //Declar the vars //var i, val; // empty Array
>
> //Start of loop for (i = 0; i < myNodeList.length; i++) {
> // Get element
> val = myNodeList[i];
>
> //Get pattern attribute of regEx
> regEx = new RegExp(val.getAttribute("pattern"));
>
> //Get Error message
> err = document.getElementById(val.id+"-error")
>
> //By default, set the class to error, which hides the error message
> err.className="error";
>
> //Test value "val" again the regEx
> if(!regEx.test(val.value)){
> //input fails and does not pass regEx test, set .display class
> err.className+=" display";
>
> errors = true;
> } } evt.preventDefault(); if(errors ===false){
> document.getElementById("contactus").submit(); } };
//这将获取字段的数据
>document.getElementById('send').onclick=function(evt){
>
>var errors=false;//从联系人表单var获取所有输入
>myNodeList=document.querySelectorAll('input,textarea,select');
>
>//删除变量//变量i,val;//空数组
>
>//的循环开始(i=0;i//获取元素
>val=myNodeList[i];
>
>//获取正则表达式的模式属性
>regEx=newregexp(val.getAttribute(“模式”);
>
>//获取错误消息
>err=document.getElementById(val.id+“-error”)
>
>//默认情况下,将类设置为error,这将隐藏错误消息
>err.className=“error”;
>
>//再次在正则表达式中测试值“val”
>如果(!正则表达式测试(val.value)){
>//输入失败,未通过regEx测试,set.display类
>错误.className+=“显示”;
>
>错误=正确;
>}evt.preventDefault();如果(错误===false){
>document.getElementById(“contactus”).submit();};
您需要在对象中设置所需的所有数据,并在AJAX请求中将其作为JSON字符串发送
<form id="contactus" action="http://wirehoer.net" method="post">
<fieldset>
<!-- Contact Name
-->
<label for="name">Name:</label>
<input name="name" id="name" type="text" pattern="\b[-'a-zA-Z]+,?\s[-'a-zA-Z]{0,19}\b" autofocus required>
<span id="name-error" class="error">Please enter first & last name</span>
<!-- Email
-->
<label for="email">Email:</label>
<input name="email" id="email" type="email" pattern="^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" required>
<span id="email-error" class="error">Please enter email address</span>
<!-- Phone
-->
<label for="phone">Phone:</label>
<input name="phone" id="phone" type="tel" pattern="\d{10}" required>
<span id="phone-error" class="error">Phone number must only contain numbers</span>
<!-- Status - Client | Partner | Vendor
-->
<label for="status">Status:
<select name="status" id="status">
<option value="client">Client</option>
<option value="partner">Partner</option>
<option value="vendor">Vendor</option>
</select>
</label>
<!-- Subscribe
-->
<label for="subscribe">
<input name="newsletter" id="subscribe" type="checkbox" value="on" checked>
Send me your newsletter</label>
<!-- Support - Sales | Support
-->
<label class="needs" for="select_sales">
<input id="select_sales" name="slsSelect" type="radio" value="sales" checked>Sales
</label>
<label class="needs" for="select_support">
<input id="select_support" name="slsSelect" type="radio" value="support">Support
</label>
<!-- Description
-->
<label for="details">Message:</label>
<textarea name="message" id="details" rows="10" cols="30"></textarea>
<span id="details-error" class="error">Please describe what your request is</span>
</fieldset>
<fieldset>
<button id= "send" type="submit">Send</button>
<button type="reset">Reset</button>
</fieldset>
</form>
<!-- javascript validation
-->
<script type="text/javascript" src="contactform_Lab11.js"></script>
</body>
</html>
document.getElementById('send').onclick = function (evt) {
var errors = false; //Gets all the inputs from contact form var
myNodeList = document.querySelectorAll('input, textarea, select');
var data = {};
//Declar the vars //var i, val; // empty Array
//Start of loop
for (i = 0; i < myNodeList.length; i++) {
// Get element
val = myNodeList[i].value;
data[myNodeList[i].id] = val;
//Get pattern attribute of regEx
regEx = new RegExp(val.getAttribute("pattern"));
//Get Error message
err = document.getElementById(val.id + "-error")
//By default, set the class to error, which hides the error message
err.className = "error";
//Test value "val" again the regEx
if (!regEx.test(val.value)) {
//input fails and does not pass regEx test, set .display class
err.className += " display";
errors = true;
}
}
evt.preventDefault();
if (errors === false) {
var req = new XMLHttpRequest();
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.open('POST', 'http://wirehopper.net/ajax-submit.php');
req.onload = function () {
if(req.status == 200)
alert(req.response);
}
//TODO: implement error handling
req.send(JSON.stringify(data));
};
}
document.getElementById('send').onclick=function(evt){
var errors=false;//从联系人表单var获取所有输入
myNodeList=document.querySelectorAll('input,textarea,select');
变量数据={};
//Declar变量//变量i,val;//空数组
//循环起点
对于(i=0;i
您基本上只是列出了您的项目需求,而不是问了一个特定的、基于代码的问题。我建议将您的问题缩减为一个特定的问题,只包括与该问题相关的代码。如果需要,您可以随时提出多个问题@Carlouuusys,ajax调用使用XMLHttpRequest对象var req=new XMLHttpRequest()代码>这是如何发挥作用的req.setRequestHeader@CarlouuusWhile@Carlouuus完美地回答了这个问题,如果您不是XMLHttpRequest的粉丝(坦率地说,谁是……我的意思是,看看这个camelcasting),那么我建议您看看一些微框架来帮助您。刚刚发现这一点,它显示了某些框架是多么流行。对于AJAX来说看起来真的很好。如果您要做的不仅仅是一点AJAX,那么可能需要做一些更实质的事情,例如。