以下代码无效。警报应显示但不显示。我的HTML表单按钮具有属性onclick="doPost()"
,其功能如下:
function doPost() {
if ( allFieldsValid() ) {
var data1 = $( '#data1' ).val();
var data2 = $( '#data2' ).val();
var data3 = $( '#data3' ).val();
var data4 = $( '#data4' ).val();
var data5 = localStorage.getItem( 'data5' );
var data6 = localStorage.getItem( 'data6' );
var post_data = { d1: data1, d2: data2, d3: data3, d4: data4, d5: data5, d6: data6 };
//console.log( post_data ) always displays the data with no nulls.
$( '#myForm' ).submit( function(e) ) {
$.ajax({
type: 'post',
url: 'http://localhost/myphpfilelocation.php',
data: post_data,
cache: false,
success: function( response ) {
alert( response );
},
error: function( response ) {
alert( response );
}
});
e.preventDefault();
}
} else {
alert( 'Fields are not valid' );
}
}
我的PHP代码使用echo
来显示它获得的数据:
<?php
$data1 = $_POST[ 'd1' ];
$data2 = $_POST[ 'd2' ];
$data3 = $_POST[ 'd3' ];
$data4 = $_POST[ 'd4' ];
$data5 = $_POST[ 'd5' ];
$data6 = $_POST[ 'd6' ];
echo( $data1. ' '.$data2. ' '.$data3. ' '.$data3. ' '.$data4. ' '.$data5. ' '.$data6 );
?>
我的脚本中的alert()
甚至都没有出现。
我的所有HTML表单输入都有正确的ID(('#data1')
等)。
答案 0 :(得分:1)
您必须使用JSON.stringify()
方法。
JSON.stringify函数将Javascript对象转换为JSON文本和 将它存储在一个字符串中。
此外,contentType是您要发送的数据类型,因此application/json
。
请试试这个:
$.ajax({
type: 'post',
url: 'http://localhost/myphpfilelocation.php',
data: JSON.stringify(post_data),
contentType:'application/json',
cache: false,
success: function( response ) {
alert( response );
},
error: function( response ) {
alert( response );
}
});
在php
文件中,您必须使用json
功能解码json_decode
个对象。