Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组作为url参数发送_Php_Javascript_Arrays_Url - Fatal编程技术网

Php 将数组作为url参数发送

Php 将数组作为url参数发送,php,javascript,arrays,url,Php,Javascript,Arrays,Url,我正在处理这个项目,我需要传递一个数组作为URL参数,我实际上是通过javascript来实现的 function guardarTodo() { var datos = []; var txtfechaCap = document.getElementById("txtfechaCap").value; datos.push(txtfechaCap); var cbxLocalidad = document.getElementById("cbxLocalidad").value; dato

我正在处理这个项目,我需要传递一个数组作为URL参数,我实际上是通过javascript来实现的

function guardarTodo()
{
var datos = [];

var txtfechaCap = document.getElementById("txtfechaCap").value;
datos.push(txtfechaCap);
var cbxLocalidad = document.getElementById("cbxLocalidad").value;
datos.push(cbxLocalidad);
var txtapellidoP = document.getElementById("txtapellidoP").value;
datos.push(txtapellidoP);
var txtapellidoM = document.getElementById("txtapellidoM").value;
datos.push(txtapellidoM);
var txtNombres = document.getElementById("txtNombres").value;
datos.push(txtNombres);
var txtCurp = document.getElementById("txtCurp").value;
datos.push(txtCurp);

var chkSexo;
if(document.getElementById("chkHombre").checked)
    chkSexo = 'H';
else
    chkSexo = 'M';
datos.push(chkSexo);
var txtfecha = document.getElementById("txtfecha").value;
datos.push(txtfecha);
var txtEdad = document.getElementById("txtEdad").value;
datos.push(txtEdad);
var txtPeso = document.getElementById("txtPeso").value;
datos.push(txtPeso);
var txtTalla = document.getElementById("txtTalla").value;
datos.push(txtTalla);
var txtCC = document.getElementById("txtCC").value;
datos.push(txtCC);
for (var i=0;i<document.getElementById('table_depProg').rows.length;i++) 
{
    var prog = [];
    for (var j=0;j<1;j++) 
    {

        var programa = document.getElementById('table_depProg').rows[i].cells[j].innerHTML;
        alert(programa);
        prog.push(programa);
    }
    window.location.href = "funciones/guardar.php?prog="+prog+"&datos[]="+datos;
}
}
它包含数据,但当我打印$sql变量时,我得到以下结果:

CALL personasAdd(,'','','','','','','',,,,);

我在这方面工作了一整天,找不到我做错了什么,我真的非常感谢任何帮助或线索来找到我的错误。

要按名称访问每个值,必须在URL参数中包含名称。否则,当您刚刚传递
值时,PHP现在有办法知道
name=“txtfechaCap”

var txtfechaCap = document.getElementById("txtfechaCap").value;
datos.push('datos[txtfechaCap]=' + txtfechaCap);

var cbxLocalidad = document.getElementById("cbxLocalidad").value;
datos.push('datos[cbxLocalidad]=' + cbxLocalidad);

// etc.
这也是一个好主意,因为
input.value
当然可以包含URL的特殊字符:

var txtfechaCap = document.getElementById("txtfechaCap").value;
datos.push('datos[txtfechaCap]=' + encodeURIComponent(txtfechaCap));

// etc.
但是,由于名称现在包含在
datos
中,只需将
数组
“&”
连接并附加:

window.location.href = "funciones/guardar.php?prog="+prog+"&"+datos.join('&');

您可能还需要执行与
prog
类似的操作:

// ...
    prog.push('prog[]=' + encodeURIComponent(programa));
}

window.location.href = "funciones/guardar.php?"+prog.join("&")+"&"+datos.join('&');

您没有正确传递
datos
。看一看。它工作得很好,非常感谢你的帮助,我意识到了我所有的错误。“要求代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果”我的问题不是要求代码,而是要求帮助,用户可能会说“你的问题是这个还是那个”,我想我的错误是我没有分享我在获得帮助后的具体做法,但原因是我在看到Jonathan Lonowski的帮助后意识到了我的错误,那是因为我只是遵循了他的解决方案,这并不意味着我不明白他做了什么,我在做什么。
window.location.href = "funciones/guardar.php?prog="+prog+"&"+datos.join('&');
// ...
    prog.push('prog[]=' + encodeURIComponent(programa));
}

window.location.href = "funciones/guardar.php?"+prog.join("&")+"&"+datos.join('&');