2016-12-15 5 views
0

У меня есть php-цикл, который генерирует несколько кнопок. Каждая кнопка меняет содержимое определенного div и обновляет некоторые вещи в базе данных с помощью ajax-запроса. Когда кнопка нажата, она вызывает функцию который выполняет запрос ajax. Проблема в том, что я не могу передать Div id как параметр в функции, если я объединю его со строкой. Только когда я пишу $ TickCrossDiv = $ i, он работает (только при использовании числа в качестве Div id он работает).Передача переменной php в javascript-функцию

Вот мой код:

for($i=0;$i<count($PlanningArray);$i++){ 

     $TickCrossDiv = 'tickCrossDiv'.$i; 

    echo "<button onclick=\"SetActDone(
     ".$PlanningArray[$i]'PlanID'].", 
     ".$PlanningArray[$i]['ActID'].", 
     ".$TickCrossDiv.")\" > 
     Mark as done</button>" 
} 

Вот функция:

function SetActDone(PlanID,ActID,DivID) 
    { 
     $.ajax({ 

      type: "POST", 
      url: 'testAjax.php', 
      data: {PlanID:PlanID, ActID:ActID}, 
      success: function(data) { 

       $("#" + DivID).html('<p>Status: Done</p> <i style="color:greenyellow; " class="fa fa-check-circle fa-2x"></i>'); 
      } 
     }); 
    } 

Я получаю сообщение об ошибке:

Uncaught Ошибка: Ошибка синтаксиса непризнанного выражение: #object HTMLDivElement

ответ

1

Не зная, что значения $PlanningArray[$i][...] я не могу сказать точно. Но, скорее всего, вам нужно обернуть свою эхо-переменную в кавычки. Это объясняет, почему число будет работать, оно будет рассматриваться как целое, а не строка. Попробуйте это:

for($i=0;$i<count($PlanningArray);$i++){ 

    $TickCrossDiv = 'tickCrossDiv'.$i; 

    echo "<button onclick=\"SetActDone(
     ".$PlanningArray[$i]['PlanID'].", 
     ".$PlanningArray[$i]['ActID'].", 
     '".$TickCrossDiv."')\" > 
     Mark as done</button>" 

}

Я предполагаю, что $PlanningArray[$i]['PlanID'] и $PlanningArray[$i]['ActID'] также целые числа, поэтому они не должны быть обернуты в кавычки.

Я также исправил опечатку на этой линии:

$PlanningArray[$i]'PlanID'] 

Если ваш код работает, что опечатка, вероятно, не внесенные в реальном сценарии.

+0

Большое спасибо !!! теперь он работает, я обертываю $ TickCrossDiv в кавычки и да, $ PlanArray [$ i] ['PlanID'] и $ PlanningArray [$ i] ['ActID'] являются целыми числами –

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