【问题标题】:Send a variable from Javascript to Javascript将变量从 Javascript 发送到 Javascript
【发布时间】:2015-03-11 15:23:45
【问题描述】:

我需要将一个变量从一个脚本发送到另一个脚本,希望你能帮助我。

我要发送的变量是“campos”,它是一个计数器。

这是第一个脚本:

<script>

var campos = 0;

function agregarCampophp(hola){

// alert(campos);

 var data = {};
 data.pruebaId = $('#prueba').val();
 data.deno = $('#subespecifica-descripcion').val();
 data.prep = $('#partidaasociada-presupuestop').val();
 data.tot = $('#partidaasociada-totalp').val();
 // var datad = $.parseJSON(data);
 // alert(data.prep);

 campos = campos+1;
 var NvoCampo= document.createElement("div");
 $('#prueba').attr('value','');
 $('#subespecifica-descripcion').attr('value','');
 $('#partidaasociada-presupuestop').attr('value','');
 $('#partidaasociada-totalp').attr('value','');
 NvoCampo.id= "divcampo_"+(campos);
 NvoCampo.innerHTML= 
 "<table class='table table-striped'  >"+
    "   <tr>" +
 "     <td>" +
 "        <input type='text' size='20' name='articupart_" + campos + 
               "' id='articupart_" + campos + "' value='"+data.pruebaId+"'>" +
 "     </td>" +
 "     <td>" +
 "        <input type='text' size='70' name='articudeno_" + campos + 
               "' id='articudeno_" + campos + "' value='"+data.deno+"'>" +
 "     </td>" +
 "     <td align='right'>" +
 "        <input type='text' size='22' name='articuprep_" + campos + 
               "' id='articuprep_" + campos + "' value='"+data.prep+"'>" +     
 "     </td>" +
 "     <td align='right'>" +
 "        <input type='text' size='22' name='articutot_" + campos + 
               "' id='articutot_" + campos + "' value='"+data.tot+"'>" +
 "     </td>" +
 "     <td align='right'>" +
 "        <input type='hidden' id='c_"+campos+"' value='hola_"+campos+"'>" +
 "     </td>" +

 "   </tr>"+
 " </table>";
 var contenedor= document.getElementById("contenedorcampos");
 contenedor.appendChild(NvoCampo);

data.part = $('#articupart_'+campos).val();
data.deno = $('#articudeno_'+campos).val();
data.prep = $('#articuprep_'+campos).val();
data.tot = $('#articutot_'+campos).val();

}

我需要这个其他脚本中的变量“campos”:

$('._save').on('click', function(event){
event.preventDefault();
var data = {};
data.campos = $('#c_2').val();
alert(data.campos);
data.pruebaId = $('#prueba').val();
data.secId = $('#Hidden1').val();
data.proId = $('#Hidden2').val();
data.subId = $('#Hidden3').val();
data.proyId = $('#Hidden4').val();
data.actId = $('#Hidden5').val();
data.prep = $('#partidaasociada-presupuestop').val();
data.tot = $('#partidaasociada-totalp').val();
data.desc = $('#subespecifica-descripcion').val();

var success = function(data){
   console.log("Success!", data);
}
var error = function(data){
   console.log("Error!", data);
}
//     $.ajax({
//       url:'index.php?r=partidaasociada/get-linea',
//       type:'POST',
//       dataType:'json',
//       data:data
//    }, success, error);
});

我正在尝试使用我在第一个中创建的隐藏 div 获取变量,但我遇到了一些错误,在此先感谢。

【问题讨论】:

  • 尝试window.campos = XXX; 设置值并尝试使用alert (window.campos); 在保存事件中显示该值。如果两个脚本都在同一个窗口中运行,这应该可以工作。如果保存脚本在另一个页面上,则需要使用查询字符串参数传递变量。
  • 两个脚本都在同一个窗口中运行,我只是不明白你的“XXX”是什么意思,你能解释一下吗?非常感谢。
  • campos = campos+1; 换成window.campos = window.campos+1;(别忘了先初始化变量,window.campos=0;)。 XXX 应该只代表一个随机变量值 ;-)
  • 哦,我现在明白了,xxx 只是一个 var,但我在保存事件中使用“alert (window.campos)”得到“未定义”
  • 请适当标记——这纯粹是客户端问题,所以用phpyii2 标记它没有什么意义。

标签: javascript variables counter


【解决方案1】:

很高兴这对你有用。所以基本上这就是解决方案:

// initialise the variable if it has not been initialised before
if (typeof(window.campos)=='undefined') {
  window.campos= 0;
}

// increase by one
window.campos+=1;

然后在您的第二个脚本中使用:

$('._save').on('click', function(event){
  ...
  // access the previously stored view counter
  data.campos= window.campos;
}     

很高兴这对你有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多