2015-04-29 4 views
0
параметру

сценария является:JQuery - изменение страницы с отправкой POST

У меня есть HTML-тег на странице (назовем его «index.php»), который является ссылка на другую страницу (назовём его страницу ' action.php ')! очевидно,

Страница «action.php» должна получать параметр POST, в противном случае это возвращает ошибку!

У меня есть необходимый параметр на странице «index.php», но я не хочу использовать форму-тег для его отправки. Всякий раз, когда пользователь нажимает на a-тег, параметр должен быть отправлен на страницу «action.php».

Действительно, AJAX не имеет никакого отношения к этому вопросу, в то время как я хочу изменить страницу с отправкой параметра POST всякий раз, когда пользователь нажимает на мой < a>!

пример: index.php

<a class='showProject' href='action.php' data-pid='<?php echo project_ID ?>'> PROJECT </a> 

action.php

echo $_POST['project_id']; 

я предпочитаю, чтобы, если есть способ сделать это, JQuery код начинается со следующего события:

$('.showProject').on('click',this,function(e){ 

    /* YOUR SOLUTION */ 
}); 
+0

Вы когда-нибудь читали о Ajax? – reporter

+0

Я хочу изменить страницу с отправкой параметра POST, когда пользователь нажимает на вместо

ответ

1

Вы можете использовать Ajax для этого. Я не знаю, где у вас есть параметр, который вы хотите передать в action.php, но в моем примере он хранится в скрытом значении.

$('.showProject').click(function() { 
    var productId = $("#hiddenField").Value(); 
    $.ajax({ 
     type: 'POST', 
     url: 'action.php', 
     data: {productId: productId}, 
     success: function(data) { 
       //Do whatever you need to do with the return data. 
      }, 
     error: function(xhr, ajaxOptions, thrownerror) { } 
    }); 
}); 
0
<span class='showProject' data-action-url='action.php' data-pid='<?php echo project_ID ?>'> PROJECT </span> 

Если вы хотите использовать Ajax не использовать <a> Tag. вместо этого используйте диапазон или кнопку.

Если вы используете <a> тег, установите href='#' или href="javascript:void(0)"

<a class='showProject' href='#' data-action-url='action.php' data-pid='<?php echo project_ID ?>'> PROJECT </a> 

ИЛИ

<a class='showProject' href='javascript:void(0)' data-action-url='action.php' data-pid='<?php echo project_ID ?>'> PROJECT </a> 

Затем с помощью Ajax

$('.showProject').on('click',this,function(e){ 

    $.ajax({ 
      method: 'POST', 
      data: { project_id: $(this).data('pid')}, 
      url: $(this).data('action-url'), 
      success: function(data){ 

      // HERE Assign Returned page to DIV 

      } 
    }); 
}); 

EDIT: Я никогда не работал на PHP. Но то, что вы пытаетесь сделать, не кажется правильным.

Создайте новый файл.

controller.php

Вместо того, чтобы идти прямо на action.php, POST на controller.php.

$('.showProject').on('click',this,function(e){ 

    $.ajax({ 
      method: 'POST', 
      data: { project_id: $(this).data('pid')}, 
      url: 'controller.php', 
      success: function(data){ 

      // Redirect to Page: 
      window.location.href = URL RETURN FROM PHP; 

      } 
    }); 
}); 

Храните идентификатор в сеансе.

// this syntax maybe wrong 

$_SESSION["prod_id"] = $_POST['project_id']; 

return URL // I don't know how to do that in PHP 

В action.php, получить ID

echo $_SESSION["prod_id"]; 
+0

спасибо за ваше решение, но я хочу изменить страницу на «action.php» с включенным параметром POST, каждый раз, когда пользователь нажимал на < a >, не просто присваивать содержимое результата div на той же странице (index.php) –

+0

что-то вроде этого? http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call –

+0

нет ... это не то, что я хочу –

Смежные вопросы