Javascript 如何通过Ajax和PHP传递表单

Javascript 如何通过Ajax和PHP传递表单,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我是新来的,我只是想让它与简单的代码一起工作,然后我会添加到它。但它不起作用,因为我没有回声。我只想提交一个表单,不刷新页面 这是我的表格 <form > <input type="text" id="name" > <input type="submit" value="s" onclick="return chl()" > </form> 这是我的js <script> function chl(){ var na

我是新来的,我只是想让它与简单的代码一起工作,然后我会添加到它。但它不起作用,因为我没有回声。我只想提交一个表单,不刷新页面

这是我的表格

<form >
 <input type="text" id="name" >
 <input type="submit" value="s"  onclick="return chl()" >
</form>

这是我的js

<script>
function chl(){

  var name= document.getElementByID('name').value;
  var dataString='name' + name; 

  $.ajax({
     type:"post",
     url:"hi.php",
     data:dataString,
     cache:false,
     success: function(html){
       alert ("success"); 
     }
   });
   return false;
}
</script>

函数chl(){
var name=document.getElementByID('name')。值;
var dataString='name'+name;
$.ajax({
类型:“post”,
网址:“hi.php”,
数据:dataString,
cache:false,
成功:函数(html){
警惕(“成功”);
}
});
返回false;
}
这是我的php

<?php

$name=$_POST ['name'];
echo "response".$name; 

?>

数据字符串的形式应类似于查询字符串;您错过了键和值之间的
=

var dataString = 'name=' + name; 
也就是说,您可以改进代码。首先,您应该将事件附加到表单的
submit
,并使用
event.preventDefault()
停止正常表单提交。此外,还可以使用
serialize()
生成一个对象,该对象包含要在AJAX请求中传递的表单值。PHP代码的响应将在发送到
success
处理程序的参数中重新调整,因此您需要在那里对其进行处理。最后,您应该在JS中附加事件,而不是HTML属性,以便更好地分离关注点。试试这个:

<form method="hi.php">
    <input type="text" id="name" />
    <input type="submit" value="s" />
</form>
$name=$\u POST['name'];
echo“response:name=”.$name;

数据字符串的形式应类似于查询字符串;您错过了键和值之间的
=

var dataString = 'name=' + name; 
也就是说,您可以改进代码。首先,您应该将事件附加到表单的
submit
,并使用
event.preventDefault()
停止正常表单提交。此外,还可以使用
serialize()
生成一个对象,该对象包含要在AJAX请求中传递的表单值。PHP代码的响应将在发送到
success
处理程序的参数中重新调整,因此您需要在那里对其进行处理。最后,您应该在JS中附加事件,而不是HTML属性,以便更好地分离关注点。试试这个:

<form method="hi.php">
    <input type="text" id="name" />
    <input type="submit" value="s" />
</form>
$name=$\u POST['name'];
echo“response:name=”.$name;

您也可以尝试使用-

var dataString = $('form').serialize();

这样,如果您有许多输入字段,就可以避免生成数据字符串。

您还可以尝试使用-

var dataString = $('form').serialize();

这样,如果您有许多输入字段,就可以避免生成
数据字符串。

像下面所示更改ajax函数并发送数据,并且您的php和js函数必须位于不同的页面中

function chl(){
   var name= document.getElementByID('name').value;
   $.ajax({
      type:"post",
      url:"hi.php",
      data:{name:name},
      success: function(html){
         alert ("success"); 
      } 
   });
   return false;
}

如下图所示更改ajax函数并发送数据,您的php和js函数必须位于不同的页面中

function chl(){
   var name= document.getElementByID('name').value;
   $.ajax({
      type:"post",
      url:"hi.php",
      data:{name:name},
      success: function(html){
         alert ("success"); 
      } 
   });
   return false;
}

文件
jQuery(文档).ready(函数($){
$('click')。在('click',函数(事件){
event.preventDefault();
/*对事件采取行动*/
var name=$('#name').val();
$.ajax({
url:'hi.php',
键入:“POST”,
数据:{name:name}
})
.完成(功能(数据){
警报(数据);//您可以对该数据发出警报
console.log(data);//或者在控制台Ctrl+shift+I上查看此数据
})
.fail(函数(){
控制台日志(“错误”);
})
.always(函数(){
控制台日志(“完成”);
});
});
});

文件
jQuery(文档).ready(函数($){
$('click')。在('click',函数(事件){
event.preventDefault();
/*对事件采取行动*/
var name=$('#name').val();
$.ajax({
url:'hi.php',
键入:“POST”,
数据:{name:name}
})
.完成(功能(数据){
警报(数据);//您可以对该数据发出警报
console.log(data);//或者在控制台Ctrl+shift+I上查看此数据
})
.fail(函数(){
控制台日志(“错误”);
})
.always(函数(){
控制台日志(“完成”);
});
});
});

函数chl()
{
var namelement=document.getElementById(“myName”);
//创建formData对象并将其发送到PHP脚本
var formData=new formData();
//名称等于输入元素名称属性值
append(namelement.name,namelement.value);
var xmlHttp=new XMLHttpRequest();
xmlHttp.onreadystatechange=函数()
{
if(xmlHttp.readyState==4&&xmlHttp.status==200)
{
警报(xmlHttp.responseText);
}
}
open(“POST”、“server.php”);
xmlHttp.send(formData);
}

函数chl()
{
var namelement=document.getElementById(“myName”);
//创建formData对象并将其发送到PHP脚本
var formData=new formData();
//名称等于输入元素名称属性值
append(namelement.name,namelement.value);
var xmlHttp=new XMLHttpRequest();
xmlHttp.onreadystatechange=函数()
{
if(xmlHttp.readyState==4&&xmlHttp.status==200)
{
警报(xmlHttp.responseText);
}
}
open(“POST”、“server.php”);
xmlHttp.send(formData);
}
表格


剧本

<script>
$("#test").submit(function(e){
  e.preventDefault();
  var name= document.getElementByID('name').value;

  $.ajax({
     type:"post",
     url:"hi.php",
     data:{"name":name},
     cache:false,
     success: function(html){
       alert (html); 
     }
   });
   return false;
}
</script>

$(“#测试”)。提交(功能(e){
e、 预防默认值();
var name=document.getElementByID('name')。值;
$.ajax({
类型:“post”,
网址:“hi.php”,
数据:{“name”:name},
cache:false,
成功:函数(html){
警报(html);
}
});
返回false;
}
表格


剧本

<script>
$("#test").submit(function(e){
  e.preventDefault();
  var name= document.getElementByID('name').value;

  $.ajax({
     type:"post",
     url:"hi.php",
     data:{"name":name},
     cache:false,
     success: function(html){
       alert (html); 
     }
   });
   return false;
}
</script>

$(“#测试”)。提交(功能(e){
e、 预防默认值();
var name=document.getElementByID('name')。值;
$.ajax({
类型:“post”,
网址:“hi.php”,
数据:{“name”:name},
隐藏物: