试图 post json 对象从 javascript 到 php
trying to post json object from javascript to php
我正在尝试将 json 格式的表单数据发送到 php 以使用 sql 进行处理,但不知何故它不起作用,我有点混淆 ajax 和json 事情,很确定语法不正确,请帮忙
function testObj(){
var obj = {"firstkey":"firstvalue","secondkey":"secondvalue"};
$.ajax({ type: 'POST', url: 'testPht.php', data: {json: obj},
dataType: 'json' });
}
<form id="theForm" enctype="multipart/form-data">
<select id="itemsList" name="select_pro" onchange="testObj()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
</select>
<input value="submit" type="submit"></form>
<?php
$json = json_decode($_POST['json']);
var_dump($json);
将 contentType : 'application/json'
添加到 ajax 方法。
$.ajax({
contentType : 'application/json',
type : 'POST',
...
我创建并测试了有效的示例:
index.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function testObj(){
var json = '{"firstkey":"firstvalue","secondkey":"secondvalue"}';
$.ajax({ type: 'POST', url: 'ajax.php', data: {json: json}, success : function(data){
alert(data);
}});
}
</script>
<form id="theForm" action="" type="post">
<select id="itemsList" name="select_pro" onchange="testObj()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
</select>
<input value="submit" type="submit">
</form>
ajax.php
$json = $_POST['json'];
$json = json_decode($json);
echo 'Received:';
var_dump($json);
或者只是:
$json = $_POST['json'];
var_dump($json);
您使用此内容创建两个脚本 index.php 和 ajax.php,您将看到何时更改 select 来自 ajax 的警报数据。
试试这个,请先包含 jquery:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.js"></script>
<script>
$(document).ready(function()
{
$(#submit).click(function()
{
var obj = {"firstkey":"firstvalue","secondkey":"secondvalue"};
$("#itemsList option:selected").text();
$.post("testPht.php",{obj:obj},function(data)
{
alert(data);
});
});
});
</script>
<form id="theForm" enctype="multipart/form-data">
<select id="itemsList" name="select_pro" onchange="testObj()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
</select>
<input value="submit" id="submit" type="submit">
</form>
<?php
if($_POST)
{
$json = json_decode($_POST['obj']);
var_dump($json);
}
?>
json_decode
以字符串为参数。您只需要避免使用 json_decode
并从 $_POST['json']
接收 json 数据作为 php 数组
否则使用带有 JSON.stringify()
函数的字符串化 json 数据。
$.ajax({
type: 'POST',
url: 'test.php',
data: {
json: JSON.stringify(obj)
},
dataType: 'json'
});
我正在尝试将 json 格式的表单数据发送到 php 以使用 sql 进行处理,但不知何故它不起作用,我有点混淆 ajax 和json 事情,很确定语法不正确,请帮忙
function testObj(){
var obj = {"firstkey":"firstvalue","secondkey":"secondvalue"};
$.ajax({ type: 'POST', url: 'testPht.php', data: {json: obj},
dataType: 'json' });
}
<form id="theForm" enctype="multipart/form-data">
<select id="itemsList" name="select_pro" onchange="testObj()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
</select>
<input value="submit" type="submit"></form>
<?php
$json = json_decode($_POST['json']);
var_dump($json);
将 contentType : 'application/json'
添加到 ajax 方法。
$.ajax({
contentType : 'application/json',
type : 'POST',
...
我创建并测试了有效的示例:
index.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function testObj(){
var json = '{"firstkey":"firstvalue","secondkey":"secondvalue"}';
$.ajax({ type: 'POST', url: 'ajax.php', data: {json: json}, success : function(data){
alert(data);
}});
}
</script>
<form id="theForm" action="" type="post">
<select id="itemsList" name="select_pro" onchange="testObj()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
</select>
<input value="submit" type="submit">
</form>
ajax.php
$json = $_POST['json'];
$json = json_decode($json);
echo 'Received:';
var_dump($json);
或者只是:
$json = $_POST['json'];
var_dump($json);
您使用此内容创建两个脚本 index.php 和 ajax.php,您将看到何时更改 select 来自 ajax 的警报数据。
试试这个,请先包含 jquery:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.js"></script>
<script>
$(document).ready(function()
{
$(#submit).click(function()
{
var obj = {"firstkey":"firstvalue","secondkey":"secondvalue"};
$("#itemsList option:selected").text();
$.post("testPht.php",{obj:obj},function(data)
{
alert(data);
});
});
});
</script>
<form id="theForm" enctype="multipart/form-data">
<select id="itemsList" name="select_pro" onchange="testObj()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
</select>
<input value="submit" id="submit" type="submit">
</form>
<?php
if($_POST)
{
$json = json_decode($_POST['obj']);
var_dump($json);
}
?>
json_decode
以字符串为参数。您只需要避免使用 json_decode
并从 $_POST['json']
否则使用带有 JSON.stringify()
函数的字符串化 json 数据。
$.ajax({
type: 'POST',
url: 'test.php',
data: {
json: JSON.stringify(obj)
},
dataType: 'json'
});