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

时间:2014-08-14 08:24:57

标签: javascript php jquery 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)。能告诉我如何实现这个目标吗?

由于

5 个答案:

答案 0 :(得分:2)

不是向客户端发送(无效)HTML,而是使用结构化数据格式,例如JSON。

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

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

答案 1 :(得分:0)

为什么不创建一个包含要返回的变量的数组,并使用json_encode对它进行解析?

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

答案 2 :(得分:0)

根据您的值制作一个数组:

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

然后将其解析为json

$json = json_encode($array);

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

答案 3 :(得分:-1)

<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将此字符串拆分为数组,

答案 4 :(得分:-1)

第一种方式 您可以将这两个值连接起来,像'_'这样的特殊字符

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);

的Javascript

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