передайте змінну JavaScript в php через Ajax [закрито]


-2

Я намагаюся передати змінну JavaScript в php через Ajax, щоб потім я міг зробити запит sql. Я викликаю функцію onchange події vopick (id). Однак не працює і отримує помилку Uncaught ReferenceError: $ не визначено.

html-код:

</tr><select onchange="votepick('1')" name="vote1" id="1"> <option selected disabled>Vote here</option> <option value="0">00 vote</option> <option value="1">01 vote</option> <option value="2">02 vote</option> <option value="3">03 vote</option> <option value="4">04 vote </option> <option value="5">05 vote </option> <option value="6">06 vote</option> <option value="7">07 vote</option> <option value="8">08 vote </option> <option value="9">09 vote</option> <option value="10">10 vote</option> </select> </td> <td><?php include 'phpexample.php';?></td>

Файл javaScript:

function votepick(id){ var x = document.getElementById(id).value; //alert(x); $.ajax({ type: "POST", url: 'phpexample.php', data: {voteid: x }, success: function(data) { alert("success! X:" + data); }
}); }

PHP-файл:

<?php if (isset($_GET['voteid'])) { $x = $_GET['voteid']; echo $x; echo "ok"; }else{ echo 'no variable received'; } ?>


Після var x = document.getElementById(id).value(перед викликом AJAX) X має очікуване значення?
Ƭᴇcʜιᴇ007

Так, я перевірив насторожено.
csgk

Відповіді:


1

Я припускаю, що ви отримуєте цю помилку у своєму коді JavaScript.

Це тому, що ви використовуєте функцію jQuery, але не включили бібліотеку jQuery.

Ви можете включити його, поставивши наступний рядок у <head>розділі свого HTML-файлу:

<script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.min.js"></script>

Дякую, проте жодна змінна не отримала ... будь-яку ідею?
csgk

У своєму JavaScript ви надсилаєте дані за допомогою POST, а в PHP ви отримуєте дані за допомогою GET. Яка різниця ? Таким чином, ви повинні змінити , $_GETщоб $_POSTу файлі PHP.
Луї Маттійссен

Так, ще раз дякую, але нічого, змінна не отримана знову ....
csgk

Ну, ви не показуєте повернених даних ніде, так як ви можете бути впевнені? Ви можете змінити, alert("success!");щоб alert("success! X: " + data);відобразити дані, які повертається сценарій PHP.
Луї Маттійссен

1
Я не думаю, що ти повністю розумієш, що робить AJAX. В основному ви викликаєте скрипт PHP (необов'язково з деякими даними, наприклад, вибраним підрахунком голосів у вашому випадку), скрипт PHP обробляє цей запит (ви можете тут робити все, як, наприклад, використовувати підрахунок голосів, щоб вставити х голосів у вашу базу даних) і повернути деякі дані (наприклад, "голосування успішно" за допомогою echo) у свій JavaScript. Це повернене значення зберігається у datavar у JavaScript. Ви можете використовувати JavaScript, щоб відобразити його на своїй HTML-сторінці. PHP-скрипт виконаний, тому даних немає. Включивши його, ви не отримаєте однакових даних.
Луї Маттійссен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.