PHP + Jquery – передать значение через ajax в php и проверить переменную

Я не могу получить следующий PHP + jQuery для работы – все, что я хочу, чтобы скрипт выполнял, это передать значение через ajax и получить php, чтобы схватить его, проверить его совпадение и добавить 1 для оценки.

Это код, который я написал:

<?php $score = "1"; $userAnswer = $_POST['name']; if ($_POST['name'] == "145"){ $score++; }else{ //Do nothing } echo $score; ?> <script type="text/javascript"> $(document).ready(function() { $("#raaagh").click(function(){ var value = "145"; alert(value); $.ajax({ url: 'processing.php', //This is the current doc type: "POST", data: ({name: value}), success: function(){ location.reload(); } }); }); }); </script> <p id="raaagh">Ajax Away</p> 

Спасибо за помощь, я поменял GET на POST в обоих случаях, и никакой радости – что-то еще не так.

Прежде всего: не возвращайтесь в темные времена … не используйте тот же скрипт для генерации HTML и для ответа на запрос ajax.

Я не могу понять, что вы пытаетесь сделать … Позвольте мне изменить ваш код, чтобы он, по крайней мере, имел смысл и документировал, что происходит. Похоже, проблема заключается в том, что вы вызываете location.reload из вашего обработчика успеха.

// ajax.php – выводит 2, если параметр имени равен 145, 1 в противном случае (????)

 <?php $score = "1"; $userAnswer = $_POST['name']; if ($_POST['name'] == "145"){ $score++; } echo $score; ?> 

// test.html

 <script type="text/javascript"> $(document).ready(function() { $("#raaagh").click(function(){ $.ajax({ url: 'ajax.php', //This is the current doc type: "POST", data: ({name: 145}), success: function(data){ // Why were you reloading the page? This is probably your bug // location.reload(); // Replace the content of the clicked paragraph // with the result from the ajax call $("#raaagh").html(data); } }); }); }); </script> <p id="raaagh">Ajax Away</p> 

Вы используете POST в своем jQuery, но вы пытаетесь получить GET в php.

Кстати, это хорошая практика, чтобы проверить, установлена ​​ли перед GET / POST переменная. используя функцию isset () .

Вы отправляете данные с помощью Ajax POST, но пытаетесь прочитать его из GET. Или используйте type: "GET" в вашем вызове Ajax или $_POST['name'] в вашем PHP.

Проблема в том, что вы используете jQuery для POST вашего значения, но вы читаете его с помощью GET.

Вы можете исправить свою проблему, изменив $ _GET ['name'] на $ _POST ['name']

Замените $_GET на $_POST и вот вы. В принципе POST и GET – это два разных способа передачи переменных сценарию. Метод get в php также может быть присоединен в конце URL: script.php?variable=value и это действительно легко взломать. В то время как метод post может быть отправлен с помощью форм или ajax-звонков, и это довольно безопасно, по крайней мере, больше, чем get. Кроме того, я предлагаю вам проверить, не установлена ​​ли какая-либо переменная GET или POST перед ее вызовом, чтобы вы могли предотвратить глупые ошибки уведомления.

Просто используйте следующий код:

 if (isset($_POST['var']) and !empty($_POST['var'])) { // do something } 

Вы также можете удалить

 }else{ // do nothing } 

часть скрипта, поскольку условие else это не обязательно всегда.