Как актуальный параметр можно передать здесь? - PullRequest
0 голосов
/ 27 января 2019

Функция JS не может быть вызвана с переданными параметрами

Я передал фактические параметры из php-файла в div с событием onclick, он отображается прямо на странице, сама функция присутствует, но параметры не отображаютсяне передается в вызов функции

Формальный аргумент остается таким же, как в определении функции, он не заменяется тем, что было передано событиям onclick

http://localhost:8000/sknt1.php?reqStr

Сам код выглядитвот так:

for ($i=0; $i<count($json_a["tarifs"]) ; $i++) {
 echo "<div onclick='fun(".$i.")' class='column' style='font-size:20px; width:100%'>

На странице это выглядит так (от 0 до 4):

<div onclick="fun(0)" class="column" style="font-size:20px; width:100%">
<div onclick="fun(1)" class="column" style="font-size:20px; width:100%">

И т. д.

fun () - это AJAXвызов функции, она записывается на страницу один раз, я не могу встроить ее в цикл php for:

 <script type='text/javascript'>
function fun(reqStr) {
var xmlhttp = null;

function AjaxRequest(url){
  if(xmlhttp != null){
    if(xmlhttp.abort)
      xmlhttp.abort();
    xmlhttp = null;
  };
  if(window.XMLHttpRequest) // good browsers
    xmlhttp=new XMLHttpRequest();
  else if(window.ActiveXObject) // IE
    xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');

  if(xmlhttp == null)
    return null;

  xmlhttp.open('GET',url,false);
  xmlhttp.send(null);

  if(xmlhttp.status >= 200 && xmlhttp.status < 300)// 2xx is good enough
    return xmlhttp.responseText;
  else
    return null;
}
window.history.replaceState({}, '',`/sknt1.php?reqStr`);
var url = '/sknt1.php?reqStr';
  var contents = AjaxRequest(url);
  if(contents){
    document.documentElement.innerHTML = contents;}
}
</script>

Я хочу, чтобы этот вызов Ajax заменил переданную переменную и заменил URL-адрес на что-то.как http://localhost:8000/sknt1.php?0, есть дополнительный файл php, он будет отображать новую страницу после манипулирования историей, пожалуйста, помогите

Ответы [ 2 ]

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

Это был нубский вопрос.Очевидно, мне следовало объединить аргументы [0], а не передавать их напрямую.

Не это /sknt1.php?reqStr, а это /sknt1.php? + reqStr

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

Просто создайте переменную внутри цикла for как $ iStr = '"'. $ I. '"'и передайте новую переменную.

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