2016-05-11 3 views
0

У меня есть 2 страницы под названием testing.php и submission.php. Я хочу получить данные от testing.php, чтобы отобразить эти данные в submission.php. Например, если пользователь нажимает на test1, он будет перенаправлен на submission.php, и я хотел бы отобразить test1 на этой странице. Вот мой код:Передача данных с одной страницы на другую с помощью ajax

testing.php:

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
</head> 
<body> 
    <div class="col-xs-3"> 
     <ul id="choose"> 
      <li class="nav"><a href="submission.php">test1</a></li> 
      <li class="nav"><a href="submission.php">test2</a></li> 
      <li class="nav"><a href="submission.php">test3</a></li> 
      <li class="nav"><a href="submission.php">test4</a></li> 
      <li class="nav"><a href="submission.php">test5</a></li> 
      <li class="nav"><a href="submission.php">test6</a></li> 
     </ul> 
    </div> 

    <script> 
     $(document).ready(function() {  
      $("#choose").on('click', '.nav', function() { 
       $.post("submission.php", { data: $(this).text() }, alert($(this).text()));    
      }); 
     }); 
    </script> 
</body> 

submission.php:

<?php 
    $subcat = $_POST['data']; 
    echo $subcat; 
?> 

На данный момент submission.php показывает ниже ошибки;

Примечание: Undefined индекс: данные в C: \ XAMPP \ HTDOCS \ серии \ динамики \ админ \ CleanURL \ submission.php на линии 2

Заранее спасибо за глядя на него, пожалуйста, предложите как я мог обойти эту проблему!

+1

Если вы действительно хотите перенаправить пользователя на 'submission.php', чтобы показать данные, вам не нужен AJAX, просто используйте стандартный элемент' form' –

ответ

-1

Форма

<form action="submission.php" method="post"> 
Name: <input type="text" name="name"><br> 
<input type="submit"> 
</form> 

С помощью AJAX

var data = (this).text(); 
    $.ajax({ 
     method: "POST", 
     url: "submission.php", 
     data: { li_selected: data} 
    }) 
     .done(function(msg) { 
     alert("Response: " + msg); 
     }); 

Я думаю, что вы хотите использовать Ajax те.

0

Это то, что происходит:

  1. Вы щелкаете по ссылке
  2. Пожары событий
  3. JavaScript работает
  4. Запрос Ajax нацелен
  5. Ссылку следует
  6. Запрос Ajax прерывается, поскольку страница, в которой он живет, больше не существует

$_POST пуст, потому что вы делаете обычный запрос GET, следуя ссылке.

Во-первых, be unobtrusive.

Замените ссылку на форму (в альтернативном варианте система должна использовать GET запросов, это зависит от what the system is doing). Поместите в него скрытый ввод, чтобы установить значение data.

Затем, чтобы сделать его Ajaxy:

  1. Bind обработчик событий для форм представить событие
  2. Захват объекта события
  3. поведение по умолчанию

Вы также должны передать функции в качестве третьего аргумента $.post.

такой:

$("#choose").on('submit','form', function(event){ 
    event.preventDefault(); 
    $.post(
     "submission.php", 
     {data: this.form.data.value}, 
     function (response) { alert(response); }    
    ); 
}); 
0

Самый простой для достижения этой цели является использование GET и не требует JavaScript.

<ul id="choose"> 
    <li class="nav"><a href="submission.php?data=test1">test1</a></li> 
    <li class="nav"><a href="submission.php?data=test2">test2</a></li> 
    <li class="nav"><a href="submission.php?data=test3">test3</a></li> 
    <li class="nav"><a href="submission.php?data=test4">test4</a></li> 
    <li class="nav"><a href="submission.php?data=test5">test5</a></li> 
    <li class="nav"><a href="submission.php?data=test6">test6</a></li> 
</ul> 

Ваше представление.php.

<?php 
$subcat = $_GET['data']; 
echo $subcat; 
?> 

Однако, если вы действительно хотите/должны использовать POST, это немного больше кода и требует javascript. Сначала оберните ул форму и добавить входы радиосигналы к каждому элементу и скрыть их:

<form action="submission.php" method="post"> 
    <ul id="choose"> 
     <li class="nav"><input type="radio" name="data" value="test1" style="display: none" /><a href="#">test1</a></li> 
     <li class="nav"><input type="radio" name="data" value="test2" style="display: none" /><a href="#">test2</a></li> 
     <li class="nav"><input type="radio" name="data" value="test3" style="display: none" /><a href="#">test3</a></li> 
     <li class="nav"><input type="radio" name="data" value="test4" style="display: none" /><a href="#">test4</a></li> 
     <li class="nav"><input type="radio" name="data" value="test5" style="display: none" /><a href="#">test5</a></li> 
     <li class="nav"><input type="radio" name="data" value="test6" style="display: none" /><a href="#">test6</a></li> 
    </ul> 
</form> 

При нажатии на ссылку, используйте JavaScript, чтобы сделать правильный вход радио проверены и отправить форму.

$("#choose").on('click', '.nav', function() { 
    $(this).find('input').prop('checked', true); 
    $('form').submit();    
}); 

Тогда вы можете использовать свой код presentation.php.

<?php 
$subcat = $_POST['data']; 
echo $subcat; 
?> 
Смежные вопросы