передайте змінну 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.