将多个变量(数组?)从jquery移动到PHP的方法

时间:2011-08-09 20:29:24

标签: php jquery arrays

我追求JSON作为一种方法来做到这一点,但我想知道我是否应该朝着不同的方向寻找。我会尽可能简单地解决这个问题。

来自“page1.php”的Jquery

$(".button").click(function() {

       var name = "Jeremy";
       var car = "Saturn";
       var color = "blue";
       var state = "Mississippi";
// I need all four of these to get passed over to PHP in the following ajax

          $.ajax({
            url: "page2.php",
            //dataType: '???????',
            type: 'POST',
            data: 'mydata=' + ????????,

                success: function(result) {
                alert(result);

                }
            });

      });

所以有四个jquery变量我已经捏造了。现在我需要将它们交给page2.php作为我的后端PHP。这是page2.php

if (filter_has_var(INPUT_POST, "mydata")) {

    $mydata = mysql_real_escape_string(filter_input(INPUT_POST,'mydata'));

// Here I need to turn these into variables, or just an array and then throw them into my SQL

mysql_query("INSERT INTO mysqldata (namefield, carfield, colorfield, statefield)
            VALUES ($name, $car, $color, $state)"); 

$sqlresult = mysql_insert_id;

if ($sqlresult != '') {
   echo "SQL successfully updated.";
}

}

因此,我的问题是:在这种情况下,将数据传递给PHP的最有效方法是什么?
这里可能有一个简单的答案我不知道。我可以将这些jquery变量转换为数组并以这种方式将它们交给PHP吗? JSON仍然是最好的方式,我只需要知道如何在后端转换它吗?

3 个答案:

答案 0 :(得分:3)

作为数组

var mydata = [name, car, color, state];

或作为对象

var mydata = { 'name' : name, 'car' : car, 'color' : color, 'state' : state };

-

$.ajax({
  ...
  data: mydata
  ...

答案 1 :(得分:1)

希望这篇博文可以帮助你......

http://www.factsandpeople.com/facts-mainmenu-5/26-html-and-javascript/89-jquery-ajax-json-and-php

重点是使用json_decode方法解码json

答案 2 :(得分:0)

的JavaScript / jQuery的

$(".button").click(function() {

    // create the data object
    var myData = {
        name : 'Jeremy',
        car : 'Saturn',
        color: 'blue',
        state: 'Mississippi'
    };

    $.ajax({
        url: "page2.php",
        //dataType: '???????',
        type: 'POST',
        data: myData,
        success: function(result) {
            alert(result);
        }
    });
});

PHP

// check if the name has been posted, which means we have a submission to process
if(isset($_POST['name'])){
    $query = sprintf("INSERT INTO mysqldata (namefield, carfield, colorfield, statefield) VALUES ('%s', '%s', '%s', '%s')",
                mysql_real_escape_string($_POST['name']), // clean malicious code
                mysql_real_escape_string($_POST['car']), // from user input
                mysql_real_escape_string($_POST['color']), // to protect against
                mysql_real_escape_string($_POST['state'])); // SQL injection

    // run the query
    $result = mysql_query($query);

    // check if the insert was done successfully
    if($result){
        echo 'SQL successfully updated.';
    }
}

如果您注意到,基于我们在javascript对象上使用的id来分配数据,我们将在$_POST数组中访问它。 E.g。

名称

var myData = {
        name : 'Jeremy',
        ...
}

将在PHP端访问

$_POST['name']