Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 如何将变量值从JS传递到PHP(而不是通过表单)_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何将变量值从JS传递到PHP(而不是通过表单)

Javascript 如何将变量值从JS传递到PHP(而不是通过表单),javascript,jquery,ajax,Javascript,Jquery,Ajax,我是新来的。所以我尝试将变量值从客户端传递到php服务器。我查看了这件事,看到了很多答案,但大多数答案都是关于发送表单值的。我要做的是传递实际的变量值。一个非常简单的示例(以下按钮的多个实例): 每次点击一个按钮,计数器就会上升一(在“如果”检查之后)。假设我想获得服务器的计数器值,应该如何实现。从我的搜索中,我了解了AJAX,但不幸的是,我无法根据自己的情况调整它。。。 我尝试将此作为AJAX请求: $("#click_ajax").click(function() { $.ajax({

我是新来的。所以我尝试将变量值从客户端传递到php服务器。我查看了这件事,看到了很多答案,但大多数答案都是关于发送表单值的。我要做的是传递实际的变量值。一个非常简单的示例(以下按钮的多个实例):

每次点击一个按钮,计数器就会上升一(在“如果”检查之后)。假设我想获得服务器的计数器值,应该如何实现。从我的搜索中,我了解了AJAX,但不幸的是,我无法根据自己的情况调整它。。。 我尝试将此作为AJAX请求:

$("#click_ajax").click(function() {
   $.ajax({
       type: 'post',
       url: 'c:/xampp/htdocs/abby/test.php',
       data: {counter}
     });
});
使用此PHP:

<?php 

    $counter = $_POST['counter'];      

    echo $counter

?>

不幸的是,它没有工作-无论我做什么,我都会通过xampp收到一个“注意:未定义的索引:C:\xampp\htdocs\abby\test.php第9行中的计数器”错误。希望有人能帮助我。提前感谢,


Abby.

您没有通过Ajax请求发送正确的数据。试试这个:

JS:

PHP(ajax文件的更优雅的方式):


希望这有帮助。

您没有通过Ajax请求发送正确的数据。试试这个:

$("your-form-id or event-any-id").on("click", function(event)
{    event.preventDefault();
    var post = new FormData( $("#form-id") );
    $.ajax({
        url: "url",
        type: "POST OR GET",
        dataType: "JSON",
        data: post,
        processData: false,
        contentType: false,
        success: function (data, status) {},
        error: function (xhr, desc, err){}
    });
});
JS:

PHP(ajax文件的更优雅的方式):

希望这有帮助

$("your-form-id or event-any-id").on("click", function(event)
{    event.preventDefault();
    var post = new FormData( $("#form-id") );
    $.ajax({
        url: "url",
        type: "POST OR GET",
        dataType: "JSON",
        data: post,
        processData: false,
        contentType: false,
        success: function (data, status) {},
        error: function (xhr, desc, err){}
    });
});
//更多细节 //网址:

//更多细节
//url:

您就快到了,问题是对象的格式。您只需将其更改为
数据:{counter:counter}
。有关AJAX的更多信息,请参阅jQuery文档:。还要注意,您需要在web服务器上运行代码。您当前将在
文件:\\C:\…
路径中发现安全错误(更不用说PHP代码将无法工作)。如果你用谷歌搜索IIS或XAMPP,你可以很容易地安装它们。在数据中,它是这样工作的:
data:{key:value,key2:value2}
,所以你需要添加一个值来计数器<代码>数据:{counter:counter}“c:/xampp/htdocs/abby/test.php”不是有效的URL。PHP将不会在此上下文中执行,并且在尝试通过ajax调用本地文件时也会出现安全错误。它需要类似于“…”等,因为您的本地Web服务器配置得很好。@Rorymcrossan,@keja No,
{counter}
作为一个很好的例子。正如@PeterMader所指出的,我们错了,您看起来还不错。不幸的是,它不起作用了,它是否影响了你的PHP,或者甚至没有发生?你几乎做到了,问题是对象的格式。您只需将其更改为
数据:{counter:counter}
。有关AJAX的更多信息,请参阅jQuery文档:。还要注意,您需要在web服务器上运行代码。您当前将在
文件:\\C:\…
路径中发现安全错误(更不用说PHP代码将无法工作)。如果你用谷歌搜索IIS或XAMPP,你可以很容易地安装它们。在数据中,它是这样工作的:
data:{key:value,key2:value2}
,所以你需要添加一个值来计数器<代码>数据:{counter:counter}“c:/xampp/htdocs/abby/test.php”不是有效的URL。PHP将不会在此上下文中执行,并且在尝试通过ajax调用本地文件时也会出现安全错误。它需要类似于“…”等,因为您的本地Web服务器配置得很好。@Rorymcrossan,@keja No,
{counter}
作为一个很好的例子。正如@PeterMader所指出的,我们错了,您看起来还不错。不幸的是,它不起作用了,是它击中了你的PHP还是根本没有发生?谢谢,但这对我来说不起作用。我在C:\xampp\htdocs\abby\test.php的第16行得到了一个“解析错误:语法错误,意外的“{”错误”。我在上面上传的基本php代码也给了我一个错误:“注意:未定义的索引:第9行C:\xampp\htdocs\abby\test.php中的计数器”.我做错了什么?谢谢!我错过了案例中if上的a),我现在将进行编辑,尝试一下。谢谢你的时间。现在我没有收到错误,但仍然没有显示(回声)php页面上的任何内容。还有,为什么我的基本php代码会抛出错误?再次感谢,AbbyTry在$_帖子上转储了一个var_,看看里面有什么,我认为索引计数器没有定义,因为您使用了data:{counter}语法而不是data:{counter:counter}。可能您的索引是1。我没有尝试使用您的语法。。请让我知道var_转储正在打印什么。此外,我建议您在将计数器变量发送到ajax之前检查它。Write console.log(counter);就在ajax请求之前,我假定它是空的,因为从您的帖子中我看不到您在哪里声明变量并为其赋值。谢谢,但这对我不起作用。我得到了一个“解析错误:语法错误,在C:\xampp\htdocs\abby\test.php的第16行出现意外的“{”。我上传的基本PHP代码(其他用户已批准)也给了我一个错误:“注意:未定义索引:第9行C:\xampp\htdocs\abby\test.PHP中的计数器”。我做错了什么?谢谢!我错过了一个)如果在案例中,我现在就编辑,试试看。感谢您的时间。现在我没有收到错误,但仍然没有显示出来(echo)php页面上的任何内容。另外,为什么我的基本php代码会抛出错误?再次感谢,AbbyTry在$_POST上转储了一个var_,看看里面有什么,我认为索引计数器没有定义,因为您使用了data:{counter}语法而不是data:{counter:counter}。可能您的索引是1。我没有尝试使用您的语法。。请让我知道var_转储正在打印什么。此外,我建议您在将计数器变量发送到ajax之前检查它。Write console.log(counter);就在ajax请求之前,我假定它是空的,因为从您的帖子中我看不到您在哪里声明变量并为其赋值。
if (isset($_POST['action']))
{
    $strAction = $_POST['action'];
    switch ($strAction)
    {
       case 'sendCounter':
          if (isset($_POST['counter']))
          {
              echo $_POST['counter'];
          }
       break;
    }
}
$("your-form-id or event-any-id").on("click", function(event)
{    event.preventDefault();
    var post = new FormData( $("#form-id") );
    $.ajax({
        url: "url",
        type: "POST OR GET",
        dataType: "JSON",
        data: post,
        processData: false,
        contentType: false,
        success: function (data, status) {},
        error: function (xhr, desc, err){}
    });
});