#php #jquery #jquery-post
#php #jquery #jquery-post
Вопрос:
Я пытаюсь создать простую игру, и я не очень хорошо разбираюсь в jQuery. У меня есть код:
<script type="text/javascript">
$(document).ready(function(){
$('#deposit').click(function(){
$.ajax({
type: 'POST',
url: 'update.php',
dataType: 'json',
data: {
Money : $('#input_money').val()
},
success: function(data){
$('#display').html(data.value);
}
});
});
});
</script>
И отображение таково:
<input id="input_money" name="input_money" type="text" size="40"><br><br>
<button id="deposit">Deposit Money</button>
<div id="display"></div>
Для серверной части я использую это:
if(isset($_POST['Money'])){
$value = $_POST['Money'];
} else {
$value = "";
}
echo json_encode(array("value"=>$value));
Кто-нибудь может мне помочь? Я планирую добавить $value
в базу данных после того, как она появится на главной странице.
Спасибо
Комментарии:
1. И в чем именно проблема, с которой вы столкнулись? Какую ошибку вы получаете?
2. Здравствуйте и добро пожаловать в StackOverflow. Пожалуйста, опишите реальную проблему, с которой вы столкнулись, чтобы мы могли попытаться направить вас на правильный путь
3. Вы запускаете это локально?
4. вы сначала печатаете заголовок содержимого?
5. Также проверьте свою консоль на наличие ошибок.
Ответ №1:
Я запустил это на своем сервере, найдите его по ссылке: this
Это работает просто отлично. Вот исходный код, такой же, как у вас.
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#deposit').click(function(){
$.ajax({
type: 'POST',
url: 'update.php',
dataType: 'json',
data: {
Money : $('#input_money').val()
},
success: function(data){
$('#display').html(data.value);
}
});
});
});
</script>
<input id="input_money" name="input_money" type="text" size="40"><br><br>
<button id="deposit" type="button">Deposit Money</button>
<div id="display"></div>
Надеюсь, у вас получится.
С наилучшими пожеланиями
Джонас
Комментарии:
1. Неверно. Он кодирует значение в формате json. Таким образом, data.value вернет вам значение. И $.post — это просто ярлык для $.ajax с ‘POST’, переданным для
type
атрибута.2. Да. Не видел часть Json в upload.php досье. К сожалению, эта часть теперь отредактирована.
3. изменение его с ajax на post не приведет ни к чему другому, поскольку это скорее косметическое изменение вызова. Они оба делают одно и то же.
4. Верно. Как я уже сказал, я бы предпочел использовать эту команду, чем другую, без комментариев о том, как это решит его проблему или нет.
5. Снова верно. Извините, я все еще новичок во всем этом stackoverflow. Тем не менее, я редактирую свой пост, чтобы содержать код, который работает. Я надеюсь, что это лучше.
Ответ №2:
Попробуйте это (непроверенный и без Json, но должен работать прямо).
HTML:
<form method="post" action="" id="myform">
<p><input id="input_money" name="input_money" type="text" size="40"></p>
<button id="deposit" type="submit" name="deposit">Deposit Money</button>
</form>
<div id="display"></div>
JS:
<script type="text/javascript">
$(document).ready(function()
{
$('#myform').submit(function()
{
var dataString = $(this).serialize();
$.ajax({
type: 'POST',
url: 'update.php',
data: dataString,
success: function(response){
$('#display').html(response);
},
error: function(){
alert('There was an error in AJAX call!');
}
});
return false;
});
});
</script>
PHP:
echo isset($_POST['input_money']) ? htmlentities($_POST['input_money']) : 'no value';