Это мой код, и я хочу передать переменную javascript с помощью ajax для php, когда я нажму кнопку «Отправить», тогда результат не отображает переменную var_data из javascript. Какой код неправильный? Это порядок редактирования, прежде чем все мне помогут
<!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script> $(document).ready(function() { $('#sub').click(function() { var var_data = "Hello World"; $.ajax({ url: 'http://localhost/ajax/PassVariable.php', type: 'GET', data: { var_PHP_data: var_data }, success: function(data) { // do something; } }); }); }); </script> </head> <body> <input type="submit" value="Submit" id="sub"/> <?php $test = $_GET['var_PHP_data']; echo $test; ?> </body> </html>
и теперь это исходный код
<?php if (isset($_GET['var_PHP_data'])) { echo $_GET['var_PHP_data']; } else { ?> <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> <script src="http://malsup.github.com/jquery.form.js"></script> <script> $(document).ready(function() { $('#sub').click(function() { var var_data = "Hello World"; $.ajax({ url: 'http://localhost/test.php', type: 'GET', data: { var_PHP_data: var_data }, success: function(data) { // do something; $('#result').html(data) } }); }); }); </script> </head> <body> <input type="submit" value="Submit" id="sub"/> <div id="result"> </body> </html> <?php } ?>
этот оператор if (isset ($ _ GET ['var_PHP_data']) выводит false, а затем показывает Hello World. Что я должен делать для isset ($ _ GET ['var_PHP_data'])?
В вашем решении есть проблемы с PHP: вы не проверяете наличие данных, а также ничего не делаете с результатом. Я изменил скрипт, чтобы сделать следующее:
#result . Также убедитесь, что вы размещаете скрипт на localhost и что он называется test.php. Чтобы убедиться, что это устойчиво, вы можете изменить URL-адрес Ajax на <?php echo $_SERVER['PHP_SELF'];?> Чтобы убедиться, что вы нажмете правильный скрипт.
<? PHP
if (isset ($ _ GET ['var_PHP_data'])) {
echo $ _GET ['var_PHP_data'];
} else {
?>
<! DOCTYPE html>
<HTML>
<Голова>
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">
<Скрипт>
$ (document) .ready (function () {
$ ('# sub'). click (function () {
var var_data = "Hello World";
$ .ajax ({
url: 'http: //localhost/test.php',
type: 'GET',
данные: {var_PHP_data: var_data},
успех: функция (данные) {
// сделай что-нибудь;
$ ( '# Результат'). HTML (данные)
}
});
});
});
</ Скрипт>
</ HEAD>
<Тело>
<input type = "submit" value = "Submit" id = "sub" />
<div id = "result">
</ Body>
</ Html>
<? php}?>
Попробуйте jQuery Form, это поможет решить многие проблемы.
Для вас вопрос: попробуйте url без доменного имени, добавьте форму тегов, измените событие нажмите, чтобы отправить, добавить тип данных
Каково содержимое PassVariable.php? если это то же самое, где у вас есть jquery bit wont work coz php снова распечатает всю страницу, если файл отличается от другого
success: function(data) { alert('databack = '+ data); }
Попробуйте ввести свой ввод в форму и приложите вызов ajax к форме onsubmit event. То, как это происходит при условии, происходит, когда вы нажимаете в поле, и в этом случае оно отправляется, прежде чем вы сможете что-либо написать.
$(document).ready(function() { $('#brn').click(function() { var var_data = "Hello World"; alert("click works"); $.ajax({ url: 'http://localhost/ajax/PassVariable.php', type: 'GET', data: { x: var_data }, success: function(data) { alert(data); } }); }); });
измените его на этот код
затем в PassVariable.php put
сделать кнопку
<input type="button" id="btn" value="click me" />
он должен работать, потому что это очень простой пример. Если он не работает, проверьте свою консоль, если есть ошибки JavaScript и удалите их.