** EDIT: поле Просто отметил, что в вашем HTML, вы не дали атрибут ID на «найти» , Поэтому $ ('# find'). Val() даст вам ошибку, что-то вроде «не может найти метод val() неопределенного. Добавьте к нему id = find tag и он должен работать.
** Другое Редактирование: Извините за путаницу. Ваша форма имеет id = find, но то, что вы хотите отправить на сервер (я считаю), - это значение полей. Поэтому дайте ID-имя для ввода, затем используйте:
var data = {find: $('#name').val()};
.
Вы должны начать с помощью консоли, чтобы увидеть, если событие срабатывает что-то вроде:
<script>
$(document).ready(function() {
$("#submit").click(function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false; //This will prevent the regular submit
console.log('Hello');
});
});
</script>
(Вы используете пихты e ошибка или инструменты Chrome dev, правильно)? Если нет, посмотрите на конец этого сообщения. Если вы видите Hello на своей консоли, вы на правильном пути. Затем попытайтесь установить свой адрес в переменной и попытаться проверить его в консоли:
<script>
var url = "<?php echo SITE_URL;?>Training/test";
$(document).ready(function() {
$("#submit").click(function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false; //This will prevent the regular submit
console.log(url);
});
});
</script>
Тогда вы должны увидеть URL в консоли, это означает, что вы еще делаете хорошо.
Если это работает, попробуйте установить данные и проверить выход таким же образом:
<script>
var url = "<?php echo SITE_URL;?>Training/test";
var data = {
find: $('#find').val()
};
$(document).ready(function() {
$("#submit").click(function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false; //This will prevent the regular submit
console.log(data);
});
});
</script>
Надеясь все еще работает (вы видели, данные), а затем попробовать фактический полный код и посмотреть, если вы есть ошибка или что-то в этом роде. Кроме того, обязательно включите функцию ошибки в ваш вызов ajax, чтобы вы получили ответ, если что-то пошло не так на сервере.
<script>
var url = "<?php echo SITE_URL;?>Training/test";
$(document).ready(function() {
$("#submit").click(function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false; //This will prevent the regular submit
var url = "<?php echo SITE_URL;?>Training/test";
var data = {
find: $('#find').val()
};
$.ajax({
type:'POST',
url: url,
data: data,
success: function(response) {
alert (response);
},
error: function(resp) {
alert(resp.responseText);
}
});
});
});
</script>
Некоторые инструменты, чтобы помочь вам:
Если вы используете FireFox, использовать FireBug для отладки: https://addons.mozilla.org/fr/firefox/addon/firebug/
Если вы используете Chrome (мой личный фаворит), узнать немного больше о Chrome Средства для разработчиков: https://developers.google.com/chrome-developer-tools/?hl=fr
Если вы используете IE, пожалуйста, переключитесь на что-то еще для целей разработки, а затем попробуйте в IE, чтобы убедиться, что код совместим (скорее всего, это будет не так, но будет проще чтобы узнать, почему он не работает после этого).
Что касается линии e.preventDefault ......, посмотрите на этот SO опубликовать для получения более подробной информации: https://stackoverflow.com/a/15913969/1483513
Надеется, что это помогает!
ли ваш Javascript файл на самом деле получить разобран PHP перед отправкой клиенту? – Havsmonstret
Я не совсем понимаю, что вы имеете в виду .... – user2509780
Вы используете PHP-код в javascript ('url:" Php echo SITE_URL;?> Training/test ",'). Если вы запросите этот файл из браузера, этот PHP-код, скорее всего, не будет выполнен, и вы получите этот буквальный код в своем javascript. Как JavaScript выглядит как клиент? – Havsmonstret