我正在尝试使用某个表单,但是当我用ajax调用ti时,它将无效。
// ---------------------------- EDIT ---------------- ------------
我实际上在浏览时确实找到了我想要的东西。
jQuery Ajax POST example with PHP
我只有一个问题,这是获取数据的最佳方式,还是我可以通过某种方式从数组中调用它?
post.php中
$errors = array(); //Store errors
$form_data = array();
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$_POST['name'])); //Get data
if (!empty($errors)) {
$form_data['success'] = false;
$form_data['errors'] = $errors;
} else {
$form_data['success'] = true;
$form_data['country'] = $query['country'];//Have a bunch of these to get the data.
$form_data['city'] = $query['city'];//Or is there an easier way with an array?
$form_data['zip'] = $query['zip'];
// Etc, etc
}
echo json_encode($form_data);
然后在index.php中通过以下方式调用它:
$('.success').fadeIn(100).append(data.whatever-i-have-in-post);
// ---------------------------- v-ORIGINAL-v ------------ ----------------
这是我到目前为止。在底部你可以看到我有一个if语句来检查我是否可以从帖子中获得结果,但它总是会导致“无法获得国家/地区”(我正在使用google.com查询)。我不知道我做得对不对。有什么想法吗?
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var name = $("#name").val();
var dataString = 'name=' + name;
if (name == '') {
$('.error').fadeOut(200).show();
} else {
$.ajax({
type: "POST",
url: "post.php",
data: dataString
});
}
return false;
});
});
</script>
<form id="form" method="post" name="form" style="text-align: center;">
<input id="name" name="name" type="text">
<input class="submit" type="submit" value="Submit">
<span class="error" style="display:none">Input Empty</span>
<?php
include_once('post.php');
if($query && $query['status'] == 'success') {
$query['country'];
} else {
echo 'Unable to get country';
}
?>
</form>
post.php中
$ip = $_POST['name'];
//$ip = isset($_POST['name']); // I dont know if this makes a difference
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
答案 0 :(得分:0)
更改dataString = {name: name}
$(".submit").click(function() {
var name = $("#name").val();
var dataString = {name: name};
if (name == '') {
$('.error').fadeOut(200).show();
} else {
$.ajax({
type: "POST",
url: "post.php",
data: dataString,
success: function(response) {
// Grab response from post.php
}
});
}
return false;
});
我喜欢从ajax请求中获取JSON
数据的最佳方式。您可以通过稍微更改脚本来完成此操作。
PHP文件
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
echo json_encode(array('status'=>true, 'result'=>$query)); // convert in JSON Data
$(".submit").click(function() {
var name = $("#name").val();
var dataString = {name: name};
if (name == '') {
$('.error').fadeOut(200).show();
} else {
$.ajax({
type: "POST",
url: "post.php",
data: dataString,
dataType: 'json', // Define DataType
success: function(response) {
if( response.status === true ) {
// Grab Country
// response.data.country
// And disply anywhere with JQuery
}
}
});
}
return false;
});