我正在尝试让表单工作,但是当我用ajax调用ti时,它不起作用。
//----------------------------编辑----------------------------
实际上,我在浏览时找到了我正在寻找的东西。
jQuery Ajax POST 示例与 PHP
我只有一个问题,这是获取数据的最佳方式,还是我可以以某种方式从数组中调用它?
后.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);
然后在索引中.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>
后.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));
更改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;
});