Передать строку из php в функцию js - PullRequest
0 голосов
/ 30 января 2019

Невозможно передать строку со страницы php в функцию js другой страницы.

Отображение сообщения после того, как проверенный элемент добавления существует в массиве или нет.Я пытался либо добавлять кавычки, либо нет в операторе alert 1. С кавычками в операторе alert javascript не преобразовывал оператор, а просто отображал его напрямую.2. без кавычек в предупреждении Chrome говорит, что если без кавычек это ошибка, то

add_product.php (функция js):

function add_to_cart(){
  jQuery('#modal_errors').html("");
  var error='';
  var available =$("#size option:selected").data("available");
  var quantity = jQuery('#quantityInput').val();
  {document.getElementById("available").value = available;
     var data = jQuery('#add_product_form').serialize();
     jQuery.ajax({
        url : 'cart.php',
        method : 'post',
        data : data,
        success: function(){
            alert("<?php echo $respMsg; ?>");
            location.reload();},
        error : function(){alert("something wrong");}
                });
        return;
}

cart.php:

if ($duplicate==false){
    $respMsg="The item is in cart now.";
} else {
    $respMsg="You have added the item twice.";
}

Я ожидаю, что всплывающее окно js msgbox покажет одно из сообщений php, но фактический вывод либо говорит об ошибке синтаксиса, либо отображает строку кода.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Если вы хотите напечатать свой ответ, то вы не можете сказать alert("<?php echo $respMsg; ?>");

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

success: function(data){
            alert(data);
            location.reload();
},
0 голосов
/ 30 января 2019

Сначала вам нужно использовать функцию в cart.php, возвращающую результат $respMsg, а затем использовать data ответ от функции de jQuery.ajax, чтобы предупредить сообщение:

jQuery.ajax({
   url : 'cart.php',
   method : 'post',
   data : data,
   success: function(data){
              alert("Message: " + data);
              location.reload();
            },
   error : function(){
             alert("something wrong");
            }
});

Дополнительная информацияо data ответе и success ответе в руководстве jQuery

РЕДАКТИРОВАТЬ: Также вам необходимо удалить фигурную скобку здесь:

{document.getElementById("available").value = available;

Это может вызвать синтаксическую ошибку JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...