Это мой код, и я хочу передать переменную 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 и удалите их.