2016-11-15 4 views
0

после того, как я нажму кнопку, на странице нет ответа.Без обратной связи PHP и AJAX «POST»

Я использую метод post, чтобы получить переменную в файле ajax. Вот код.

original.php - это файл, содержащий форму, которая получает значение, и отправляет его в файл ajax.

stockProcess.php - это файл ajax, который запускает процесс sql для обновления запасов в базе данных.

original.php

<div id='status'></div> 

<input type='number' name='quantity' style='max-width:50px' id='quantity'/> 

<button class='btn btn-xs btn-success' onClick='add('pen100')'> 
    <i class='ace-icon fa fa-plus bigger-120'></i> 
</button> 

<script type="text/javascript"> 
function add(serialNo) 
{ 
    var quantity = document.getElementById("quantity").value; 
    var type = "add"; 

    if (quantity == null) 
    { 
     document.getElementById("status").innerHTML = "<p><b><font color='red'>PLEASE INPUT A VALUE</font></b></p>"; 
    } 
    else if (quantity < 0) 
    { 
     document.getElementById("status").innerHTML = "<p><b><font color='red'>WRONG VALUE<br />PLEASE ENTER VALUE LARGER THAN 0</font></b></p>"; 
    } 
    else 
    { 
     if (window.XMLHttpRequest) 
     { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } 
     else 
     { 
      // code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() 
     { 
      if (this.readyState == 4 && this.status == 200) 
      { 
       document.getElementById("status").innerHTML = this.responseText; 
      } 
     }; 
     xmlhttp.open("POST","stockProcess.php?serialNo="+serialNo+"&quantity="+quantity+"&type="+type, true); 
     xmlhttp.send(); 
    } 
} 
</script> 

stockProcess.php

<?php 

$serialNo = $_POST['serialNo']; 
$quantity = $_POST['quantity']; 
$type = $_POST['type']; 

if ($type == "add") 
    { 
     $newQ = $quantity + 50; 
     $sqlAdd = "UPDATE medicinestock SET quantity=$newQ WHERE serialNo='$serialNo'"; 
     $queryAdd = $conn -> query($sqlAdd); 

     if ($queryAdd == TRUE) 
     { 
      echo "<b><p><font color='green'>STOCK HAS BEEN UPDATE</font></p></b>"; 
     } 
     else 
     { 
      $err = $conn -> error; 
      echo "<b><p><font color='red'>SYSTEM ERROR : $err</font></p></b>"; 
     } 
    } 
?> 
+0

insted простого ajax вы можете использовать jQuery ajax .. !! –

+1

Что делать, если я хочу использовать этот метод вместо этого? какую часть я должен исправить? – Asyraf

+0

У вас есть идея о jQuery? –

ответ

-1

Попробуйте этот код:

<div id='status'></div> 
    <input type='number' name='quantity' style='max-width:50px' id='quantity'/> 
    <button class='btn btn-xs btn-success ajaxBtn' data-param-serialNo="pen100"> 
     <i class='ace-icon fa fa-plus bigger-120'></i> 
    </button> 

    <script> 
$(document).ready(function(e){ 
    $("button.ajaxBtn").on('click',function(e){ 
     e.preventDefault(); 
     var serialNo = $(this).attr('data-param-serialNo'); 
     var quantity = $('input[name="quantity"]').val(); 
     var type = "add"; 

     if(quantity == null){ 
     $('div#status').append("<p><b><font color='red'>PLEASE INPUT A VALUE</font></b></p>"); 
     }else if(quantity < 0){ 
     $('div#status').append("<p><b><font color='red'>WRONG VALUE<br />PLEASE ENTER VALUE LARGER THAN 0</font></b></p>"); 
     }else{ 
     $data = "serialNo="+serialNo+"&quantity="+quantity+"&type="+type; 
     $.ajax({ 
      url: "stockProcess.php", 
      data: $data, 
      type: 'POST', 
      dataType: 'json', 
      success: function (data) { 
      $("#status").append(data); 
      } 
     }); 
     } 
    }); 
}) 
    </script> 
+0

Мне нужно поставить скрипт в jQuery (функция ($)? – Asyraf

+0

TryAgain с обновленным .. –

0

У вас ошибка в этой строке:

<button class='btn btn-xs btn-success' onClick='add('pen100')'> 

Просто измените код ниже:

onClick="add('pen100')"

+0

Nothin неправильно с цитатой. – Asyraf

+0

@ Asyraf, я протестировал локально (получив ошибку на консоли с вашим скриптом), но когда я сделаю так, как я предлагаю, запрос будет исправляться. –

+0

, если мне это нравится, все в порядке? кнопку <класс = 'БТН БТН-хз БТН-успех' OnClick = "добавить ('RM ')"> \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t <я класс = 'ас-значок фа фа-плюс больше-120'> \t \t \t \t \t \t \t \t \t \t \t \t \t \t – Asyraf

0

При использовании POST вы должны отправить свои данные в теле запроса, передавая в него в качестве параметра send() .Также установить Content-type и другие заголовки

var payLoad = "serialNo="+serialNo+"&quantity="+quantity+"&type="+type; 

xmlhttp.open("POST","stockProcess.php", true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //mandatory header 
xmlhttp.setRequestHeader("Content-length", payLoad.length); //recommended headers 
xmlhttp.setRequestHeader("Connection", "close"); 
xmlhttp.send(payLoad); //send 
0

Я обычно использую AJAX родной для невосстанавливающейся формы POST и я не умею разбираться в AJAX. Я просто пытаюсь его использовать.

На самом деле я преследую дату, чтобы завершить проект, поэтому просто измените его на обычную форму POST.

для кода

original.php

<form method="POST" action="stockProcess.php"> 
//Button and Input number will be write here. 
</form> 

Сори за все неприятности.^_^

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