2015-03-12 4 views
0

У меня есть такая запись, которая отправляется на страницу basket.php, после отправки формы она перенаправляется на страницу basket.php и обратно на страницу заказа (страница, где находится форма). это происходит быстро, но вы все равно можете увидеть страницу корзины за секунду, как я могу остановить отображение формы на странице basket.php, но все еще обновлять текущую страницу (страницу заказа).Отправить форму без переадресации на страницу действия, но обновить текущую страницу

Мой код:

<?php 
echo '<div class="food">'; 
echo '<form method="post" action="basket.php"  
    onsubmit="window.location.reload()" >'; 
echo '<h4>'.$obj->food_title.'</h4>'; 
echo '<div class="pic"><img src="admin/food_images/'.$obj->food_image.'" 
    width= "180" height= "160"></div>'; 
echo "<p><b>£".$obj->food_price."</b></p>"; 
echo '<div class = "btn"><a href="info.php?foo_id='.$obj->food_id.'" 
    style="float:left">INFO</a></div>'; 
echo '<div class = "add_b"><button>Add to Basket</button></div>'; 
echo '<input type="hidden" name="food_code" 
    value="'.$obj->food_id.'" />'; 
echo '<input type="hidden" name="type" value="add" />'; 
echo '</form>'; 
echo '</div>'; 
?> 
+1

Я думаю, что вы можете использовать AJAX, чтобы сделать это .. – phpfresher

+0

я не использовал Ajax, прежде , пожалуйста, можете привести пример. –

+0

См. Эту ссылку для учебника AJAX ... http://www.w3schools.com/ajax/ – phpfresher

ответ

0

Привет здесь простая форма Ajax отправить файл попробовать это,

index.html:

<!DOCTYPE html> 
<html> 
<title>AJAX Tutorial</title> 
<head> 
<link href="css/bootstrap.css" type="text/css" rel="stylesheet" /> 
<script src="https://code.jquery.com/jquery-2.1.3.js"></script> 
</head> 
<body> 
<div class="container"> 
    <form id="add-basket-form" class="form-inline"> 
    <div class="form-group"> 
     <label class="sr-only" for="exampleInputAmount">Name</label> 
     <div class="input-group"> 
     <input type="text" class="form-control" id="name" name="name" placeholder="name"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="sr-only" for="exampleInputAmount">Age</label> 
     <div class="input-group"> 
     <input type="text" class="form-control" id="age" name="age" placeholder="age"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="input-group"> 
     <input type="submit" class="form-control" name="add" value="Add" placeholder="age"> 
     </div> 
    </div> 
    </form> 
</div> 

<script> 
jQuery(function(){ 
    $('#add-basket-form').submit(function(){ 
     var name = $('#name').val(); 
     var age = $('#age').val(); 

     $.ajax({ 
      url : 'basket.php', 
      dataType : 'JSON', 
      type : 'post', 
      data: { 
       'name' : name, 
       'age' : age, 
      }, 
      success: function(data) { 
       console.log(data); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 
</body> 
</html> 

<?php 
    $name = $_POST['name']; 
    $age = $_POST['age']; 
    // Above is the way to get variables and you can process whatever you want 

    echo 'success'; 
?> 
2

Cut код из basket.php и вставить его в верхней части главной страницы, предшествуют

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    //basket.php code here 
} 

После этого изменить код формы для

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 

Это обновит страницу и выполнит php-код в верхней части страницы.

+0

Мне нужна корзина.php, чтобы быть на отдельной странице. –

+0

Могу ли я спросить вас, почему? –

+0

некоторые переменные в файле basket.php также связаны с другими страницами, поэтому это может привести к тому, что я сменил много вещей на этих страницах. –

0

Возможно, это поможет. Содержит различные ответы, некоторые из них связаны с использованием абсолютного URL-адреса. Refresh page after form submiting

Чтобы остановить действие, кратко показывая страницу корзины, я не уверен, что вы можете предотвратить посещение этой страницы. Does basket.php печатает что-либо на экране? Я бы подумал, что это просто для обработки входящих POST-варов, а затем перейдите на страницу ваших заказов, верно?