我追求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仍然是最好的方式,我只需要知道如何在后端转换它吗?
答案 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']