Javascript 未调用jQuery AJAX Post alert()
下面的代码不起作用。警报应显示,但不显示。“我的HTML表单”按钮具有属性Javascript 未调用jQuery AJAX Post alert(),javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,下面的代码不起作用。警报应显示,但不显示。“我的HTML表单”按钮具有属性onclick=“doPost()”,这是下面的函数: function doPost() { if ( allFieldsValid() ) { var data1 = $( '#data1' ).val(); var data2 = $( '#data2' ).val(); var data3 = $( '#data3' ).val(); var
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')
等)。必须使用JSON.stringify()
方法
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\u decode
函数对json
对象进行解码