Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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
使用ajax将javascript变量传递给php,结果不会';我什么也没表现出来_Php_Javascript_Ajax - Fatal编程技术网

使用ajax将javascript变量传递给php,结果不会';我什么也没表现出来

使用ajax将javascript变量传递给php,结果不会';我什么也没表现出来,php,javascript,ajax,Php,Javascript,Ajax,这是我的代码,当我单击submit按钮时,我想通过ajax将javascript变量传递给php,然后结果不会显示来自javascript的var_数据变量什么代码错了? 在大家帮助我之前,这是编辑订单一 <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

这是我的代码,当我单击submit按钮时,我想通过ajax将javascript变量传递给php,然后结果不会显示来自javascript的var_数据变量什么代码错了? 在大家帮助我之前,这是编辑订单一

 <!DOCTYPE html>
<html>
<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
        $(document).ready(function() {
            $('#sub').click(function() {
                var var_data = "Hello World";
                $.ajax({
                    url: 'http://localhost/ajax/PassVariable.php',
                    type: 'GET',
                     data: { var_PHP_data: var_data },
                     success: function(data) {
                         // do something;

                     }
                 });
             });
         });
 </script>

 </head>
 <body>

 <input type="submit" value="Submit" id="sub"/>

 <?php 
   $test = $_GET['var_PHP_data'];
     echo $test;
 ?>
 </body>
 </html>

$(文档).ready(函数(){
$('#sub')。单击(函数(){
var var_data=“你好世界”;
$.ajax({
网址:'http://localhost/ajax/PassVariable.php',
键入:“GET”,
数据:{var_PHP_data:var_data},
成功:功能(数据){
//做点什么;
}
});
});
});
这就是现在的源代码

 <?php
     if (isset($_GET['var_PHP_data'])) {
       echo $_GET['var_PHP_data'];
     } else {
     ?>
     <!DOCTYPE html>
     <html>
       <head>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
            <script src="http://malsup.github.com/jquery.form.js"></script> 
         <script>
             $(document).ready(function() {
                 $('#sub').click(function() {
                     var var_data = "Hello World";
                     $.ajax({
                         url: 'http://localhost/test.php',
                         type: 'GET',
                          data: { var_PHP_data: var_data },
                          success: function(data) {
                              // do something;
                             $('#result').html(data)
                          }
                      });
                  });
              });
         </script>
       </head>
       <body>
         <input type="submit" value="Submit" id="sub"/>
         <div id="result">
       </body>
     </html>
    <?php } ?>

$(文档).ready(函数(){
$('#sub')。单击(函数(){
var var_data=“你好世界”;
$.ajax({
网址:'http://localhost/test.php',
键入:“GET”,
数据:{var_PHP_data:var_data},
成功:功能(数据){
//做点什么;
$('#result').html(数据)
}
});
});
});

如果(isset($\u GET['var\u PHP\u data'])输出为false,然后向Hello World显示我应该为isset($\u GET['var\u PHP\u data'])执行什么操作?请尝试将输入放入表单,并将ajax调用附加到表单onsubmit事件。在提供的文档中,它发生的方式是当您单击该字段时,在这种情况下,它会在您真正编写任何内容之前提交

$(document).ready(function() {
        $('#brn').click(function() {
            var var_data = "Hello World";
            alert("click works");
            $.ajax({
                url: 'http://localhost/ajax/PassVariable.php',
                type: 'GET',
                 data: { x: var_data },
                 success: function(data) {
                     alert(data);

                 }
             });
         });
     });
把它改成这个代码

然后在PassVariable.php中

制作按钮

<input type="button" id="btn"  value="click me" />

它应该起作用,因为它是一个非常基本的例子。如果它不起作用,请检查您的控制台是否存在任何JavaScript错误并将其删除。

试试它。这将有助于解决许多问题


为您解答的问题:尝试不带域名的url,添加标签“表单”,更改事件点击提交,添加数据类型

PassVariable.php的内容是什么?如果与您的位置相同,jquery位将无法工作,因为php将再次打印所有页面,如果文件不同,请尝试

success: function(data) {
                     alert('databack = '+ data);

                 }

您的解决方案存在PHP问题:您不检查数据是否存在,也不对结果进行任何处理。我已修改脚本以执行以下操作:

  • 检查是否设置了var_PHP_数据var(在服务器上的PHP中)
  • 如果是,只需发送包含该数据的空白文本响应
  • 如果没有,则绘制表格和其他所有内容
  • 在表单中,我创建了一个
    #result
    div
  • Ajax响应将显示在本部分中
  • 还要确保脚本位于localhost,并且名为test.php。为了确保这是有弹性的,您可以将Ajax URL更改为
    以确保您使用的脚本正确无误

    <?php if (isset($_GET['var_PHP_data'])) { echo $_GET['var_PHP_data']; } else { ?> <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"> <script> $(document).ready(function() { $('#sub').click(function() { var var_data = "Hello World"; $.ajax({ url: 'http://localhost/test.php', type: 'GET', data: { var_PHP_data: var_data }, success: function(data) { // do something; $('#result').html(data) } }); }); }); </script> </head> <body> <input type="submit" value="Submit" id="sub"/> <div id="result"> </body> </html> <?php } ?> $(文档).ready(函数(){ $('#sub')。单击(函数(){ var var_data=“你好世界”; $.ajax({ 网址:'http://localhost/test.php', 键入:“GET”, 数据:{var_PHP_data:var_data}, 成功:功能(数据){ //做点什么; $('#result').html(数据) } }); }); });
    避免为变量名称使用系统定义的关键字。表单标记在哪里?这样使用
    如果表单正在向自身发布,则操作可以是“”。我无法重现您的错误,我可以看到
    $\u GET['var\u PHP\u data']
    显示
    Hello World
    。尝试成功:警报('success!');它能工作吗?我试着提醒('success!')它能工作,但$\u GET['var\u PHP\u data']仍然不能显示Hello World并将jQuery更新到新版本(对于新浏览器,为1.9或2.0)当我点击submit it show same page(提交显示相同的页面)时,我会尝试按照您的代码进行操作,ajax不会对此div中显示的响应。好的,我将更改为var_PHP_数据应该做些什么var_数据已设置?这是…的第一部分,然后再次执行其余部分。或者您可以对var_PHP_数据执行一些操作,如更改、反转、大写,用它检查数据库里的东西,随便什么。这取决于你的需要。