如何在此处传递实际参数?

时间:2019-01-27 14:25:40

标签: javascript php scope

无法通过传递的参数调用JS函数

我已经通过onclick事件将实际参数从php文件传递给div,它在页面上呈现,功能本身存在,但是参数没有传递给函数调用

形式参数保留在函数定义中,不会被传递给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中进行循环:

 <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替换为smth。像http://localhost:8000/sknt1.php?0一样,还有一个额外的php文件,它将在处理历史记录后呈现新页面,请帮助

2 个答案:

答案 0 :(得分:0)

只需在for循环中创建一个变量,即$ iStr ='“'。$ i。' “”并传递新变量。

答案 1 :(得分:0)

这是一个菜鸟问题。显然,我应该有串联的参数[0],而不是直接传递它。

不是这个/sknt1.php?reqStr,而是这个/sknt1.php? + reqStr