Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP/JS-使用AJAX传递值_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript PHP/JS-使用AJAX传递值

Javascript PHP/JS-使用AJAX传递值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我试图在没有传递表单操作的情况下获取文本框的值(因为我既不能重定向到另一个页面,也不能刷新当前页面) index.php $prev = $_SESSION['prev']; $fname = $_POST['fname']; $lname = $_POST['lname']; [....do something....] echo 'You used '.$fname.' and '.$lname; 进入头部 <script type="te

我试图在没有传递表单操作的情况下获取文本框的值(因为我既不能重定向到另一个页面,也不能刷新当前页面)

index.php

    $prev = $_SESSION['prev'];
    $fname = $_POST['fname'];
    $lname = $_POST['lname'];

    [....do something....]

    echo 'You used '.$fname.' and '.$lname;
进入头部

<script type="text/javascript">
    function send() {
       $.ajax({
       type:"POST",
       url: "script.php",
       data: {
              fname: document.getElementById("fname").value,
              lname: document.getElementById("lname").value
             },
       success: function callScriptAndReturnAlert() {
                     var sdata = new XMLHttpRequest();
                     sdata.onload = function() {
                        alert(this.responseText);
                     };
                     sdata.open("get", "script.php", true);
                     sdata.send();
                  } 
              });
        }
    </script>

嗯。。script.php不接收输入fname和lname的值。

当您只需要一个ajax调用时,您正在尝试进行两个ajax调用

<script type="text/javascript">
    function send() {
      $.ajax({
       type:"POST",
       url: "script.php",
       data: {
              fname: $("#fname").val(),
              lname: $("#lname").val()
             },
       beforeSend: function(){
           alert('Sending');
       },
       success: function(data) {
              //Received data from PHP script
              alert(data);
       },
       error: function(){
           alert('Error !');
       },
       complete: function(){
           alert('Done');
       }  
     });
   }
    </script>

函数send(){
$.ajax({
类型:“POST”,
url:“script.php”,
数据:{
fname:$(“#fname”).val(),
lname:$(“#lname”).val()
},
beforeSend:function(){
警报(“发送”);
},
成功:功能(数据){
//从PHP脚本接收数据
警报(数据);
},
错误:函数(){
警报('错误!');
},
完成:函数(){
警报(“完成”);
}  
});
}

$.ajax()
$.get()
$.post()
jQuery方法用于进行ajax调用,因此,它们已经管理了自己的XMLHttpRequest对象。

我确实得到了这些值。这些都是密码吗?你没有包括jQuery吗?如果你把它包括进去,它就会起作用。为什么在对script.php的第一次调用完成时还要进行第二次ajax调用?为什么不使用jQuery呢?
<script type="text/javascript">
    function send() {
      $.ajax({
       type:"POST",
       url: "script.php",
       data: {
              fname: $("#fname").val(),
              lname: $("#lname").val()
             },
       beforeSend: function(){
           alert('Sending');
       },
       success: function(data) {
              //Received data from PHP script
              alert(data);
       },
       error: function(){
           alert('Error !');
       },
       complete: function(){
           alert('Done');
       }  
     });
   }
    </script>
$.post(
    'script.php', // Your PHP file
    { // The data to pass
        'fname' : $('#fname').val(),
        'lname' : $('#lname').val()
    }
).done(function(data) { // Here your AJAX already finished correctly.
    alert(data); // Show what the PHP script returned
});