2015-02-25 6 views
0

Передача переменной в JQuery через data-pid в href-ссылке в файле payments.php и использование AJAX для передачи этой переменной pmpmPopup.php, однако переменная не передается поПередача переменной JQuery на Php через AJAX

payments.php

<td class="listingTextLeft"> 
<a href="" data-pid="<?php echo $row[0] ?>" class="pmntDetail"><?php echo $row[20] ?></a> 
</td> 
<script> 
     $(".pmntDetail").click(function(paymentID) { 
      paymentID.preventDefault(); 
      paymentID.stopPropagation(); 
      var pmntid = $(this).data("pid"); 
      console.log("ID: ", pmntid); 
      $.ajax({ 
       type: "POST", 
       url: "pmntPopup.php", 
       data: {pmntid : pmntid }, 
       success:function(data) { 
        console.log(pmntid); 
        $("#pmntDetailPopup").modal({position: ["5%"]}); 
       } 
      }); 
     }); 
</script> 

бревно консоль в обоих случаях показывают правильное значение для pmntid, но когда при попытке использовать POST, чтобы получить его в pmntPopup.php ниже я просто получить «платеж не Carried '.

pmntPopup.php

<?php 
    if(isset($_POST['pmntid'])) { 
     $pmntid = $_POST['pmntid']; 
    } else { 
     echo "Payment Is Not Carried"; 
    } 
?> 

Я искал этот сайт, и от того, что я могу сказать, что это должно работать, я, наверное, пропустил что-то действительно основной или делать что-то действительно глупое ... или оба ,

Console POST выход:

Console POST Output

Привет @Jay, уже отправил картину вывода POST из выше консоли, на рисунке ниже показан вывод всплывающего окна, если это любая помощь:

Popup Post Output

В соответствии с просьбой выходной консоли ответ показан ниже: Console response

+0

Вы смотрели запрос/ответ в консольном окне браузера? Любые ошибки? –

+0

У вас есть эхо '$ _POST ['pmntid']'? –

+0

Нет, никаких ошибок в консоли нет, и это дает правильный pmntid. Добавьте изображение, показывающее это[email protected], да, echo'd '$ _POST ['pmntid']', и он заканчивается пустым. – Wignu

ответ

0

Я не уверен, что вы делаете с переменной PaymentID, но это должно работать для вас:

$(".pmntDetail").click(function() { 
    var pmntid = $(this).data("pid"); 
    console.log("ID: ", pmntid); 
    $.ajax({ ... 
+0

Просто дает синтаксическую ошибку в '{
Wignu

+0

Эти разрывы строк и все, что там было, потому что код не был отформатирован должным образом @Wignu –

+0

Ах думал, что это может быть форматирование. Пробовал код без него, выдает следующую ошибку: 'PST http: //localhost/pmntPopup.php x', как будто он теперь не может найти файл pmntPopup.php. – Wignu

0

Попробуйте это, реакция вызова Ajax будет установлен data переменной вашего успеха функция обратного вызова.

payments.php

<td class="listingTextLeft"> 
<a href="#" data-pid="<?php echo $row[0] ?>" class="pmntDetail"><?php echo $row[20] ?></a> 
</td> 
<script> 
     $(".pmntDetail").click(function(event) { 
      event.preventDefault(); 
      var pmntid = $(this).data("pid"); 
      console.log("ID: ", pmntid); 
      $.ajax({ 
       type: "POST", 
       url: "/UCM/pmntPopup.php", 
       data: {pmntid : pmntid }, 
       success:function(data) { 
        console.log(data); // YOU WILL RECEIVE THE RESPONSE IN data variable. 
        $("#pmntDetailPopup").modal({position: ["5%"]}); 
       } 
      }); 
     }); 
</script> 

pmntPopup.php

<?php 
    if(isset($_POST['pmntid'])) { 
     echo $_POST['pmntid']; 
    } else { 
     echo "Payment Is Not Carried"; 
    } 
?> 

[Кроме того, я поставил полный URL-адрес файла, то есть., «/ UCM/pmntPopup. php "на ваш ajax url param]

+0

Спасибо, Рао, но все равно такая же проблема, ни один pmntid не прошел. – Wignu

0

Попробуйте это вместо этого.

<td class="listingTextLeft"> 
<a href="" data-pid="<?php echo $row[0] ?>" class="pmntDetail"><?php echo $row[20] ?></a> 
</td> 
<script type="text/javascript"> 
$(".pmntDetail").click(function(e) { 
e.preventDefault(); 
var pmntid = $(this).data("pid"); 
console.log("ID: ", pmntid); 
var request = $.ajax({ 
url: "pmntPopup.php", 
type: "POST", 
data: {pmntid : pmntid}, 
dataType: "html" 
}); 
request.done(function(msg) { 
console.log(msg); 
}); 
request.fail(function(jqXHR, textStatus) { 
alert("Connection error: " + textStatus); 
}); 
}); 
</script> 

pmntPopup.php

<?php 
    if(isset($_POST['pmntid'])) { 
     $pmntid = $_POST['pmntid']; 
     echo $pmntid; 
    } else { 
     echo "Payment Is Not Carried"; 
    } 
?> 

В качестве альтернативного решения попробуйте JQuery размещать

$.post("pmntPopup.php", {pmntid : pmntid}) 
.done(function(data) { 
alert("Data Loaded: " + data); 
}); 
+0

Не делал разницы извините, переменная все еще не прошла. – Wignu

+0

Вы пробовали оба примера? –

+0

@PeterDarmis «Использовать одинарные кавычки по индексу данных», почему? – Rao

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