繁体   English   中英

如何将两个值从PHP传递到Ajax

[英]How to Pass Two Values From PHP to Ajax

您能否让我知道如何将PHP文件中的两个值传递到jQuery Ajax脚本中。 我所拥有的是一个Ajax电话:

<script>
    $(function() {
        var req = $.ajax({
                url: 'captcha.php',
            });
            req.done(function(data){
                alert(data);
        })
    });
</script>

和我的PHP(captcha.php)就像:

<?php
  $number1 = rand(1,9);
  $number2 = rand(1,9);
  $sum = $number1 + $number2;
  echo $number1;
?>

如您所见,当前我可以传递$number1的值,但我需要同时拥有两个值( $number1$number2 )。 你能让我知道如何实现吗?

谢谢

与其发送(无效)HTML到客户端,不如使用结构化的数据格式,例如JSON。

<?php
    header("Content-Type: application/json");
    $data = Array($number1, $number2);
    print json_encode($data);
    exit;

在JavaScript中,jQuery现在将使用数组填充data

为什么不创建一个包含要返回的变量的数组,并对其进行json_encode解析以在JS中进行解析呢?

echo json_encode(array($number1, $number2));

根据您的值创建一个数组:

$array = array($number1, $number2);

然后将其解析为json

$json = json_encode($array);

然后回显$ json,您的js中就有多个变量!

<script>
    $(function() {
        var req = $.ajax({
                url: 'captcha.php',
            });
            req.done(function(data){
               data = data.split(",");
               //Number 1
               alert(data[0]);
               //Number 2
               alert(data[1]);
        })
    });
</script>

<?php
  $number1 = rand(1,9);
  $number2 = rand(1,9);
  $sum = $number1 + $number2;
  echo $number1 .",". $number2;
?>

这一切都是告诉php脚本回显Number1,Number2,然后javascript将该字符串从中拆分为一个数组,

第一种方式,您可以将两个值连接起来,并用'_'这样的特殊字符将它们分开

的PHP

echo $number1 . '_' . $number2;

然后在javascript中这样做

data = data.split('_'); // get an array with the two values

第二种方法,您可以在php中编码为JSON并执行json ajax请求

的PHP

$result = array($number1, $number2);
echo json_encode($result);

Java脚本

$.getJSON('captcha.php',function(data){
    console.log(data); //
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM