【问题标题】:Help sending multiple arguments in ajax php?帮助在 ajax php 中发送多个参数?
【发布时间】:2010-12-04 23:23:10
【问题描述】:

我在 AJAX 和 javascript 方面的经验非常有限,所以希望这比对我来说更容易。 我正在构建一个简单的上传表单,只需将数据从表单发送到 js,然后将其发送到 php.ini。 基本上在 html 中(从 php 页面生成):

<form id="form" method="post" onsubmit="return ajaxSubmit(this)" action="#">
<input name="data1" type="file"/>
<input type="submit" value="Go"/>

和js:

function ajaxSubmit(thisform) { 
    results=GetXmlHttpObject();
    var submitdata ="";
    submitdata = "uploadfile=" + thisform.elements['data1'].value
results.onreadystatechange=uploadResult; 
    results.open("POST", "./functions/upload.php",true);
    results.send(formdata);

(我已经删除了一些代码以使其更短) 我还需要通过发送一个 php 变量,所以我想我可以将函数调用编写为 onsubmit="return songUploadSubmit(this, ".$phpvariable.") 但我不知道如何在 javascript 端将其拉出.我需要知道,只是我猜,如何拉 $phpvariable 并将其附加在 submitdata 变量的末尾。或者我是否要倒退.. 谢谢!

【问题讨论】:

    标签: javascript ajax argument-passing


    【解决方案1】:

    您不能通过 AJAX 上传文件。

    'somefield=somevalue&amp;otherField=othervalue' 是您想要提交多个 key=value 对的对象。

    但是,使用 jQuery 或其他框架,如果您要执行 AJAX - 否则您需要自行处理 url 转义等(使用 @987654322 @ 而不是 value) 并且您的代码看起来更丑陋。

    【讨论】:

      【解决方案2】:

      让它工作:

      在 html 中:

       return ajaxSubmit(this, $phpvariable)
      

      在 jscript 中:

      function songUploadSubmit(thisform, otherdata)
      submitdata = "data1=" + thisform.elements['data1'].value + "&data2=" + otherdata;
      

      然后我可以在 php 文件中使用 _Post 来获取两者。

      总体上只是基本缺少一些基本原理,就像我怀疑的那样。传递多个参数。

      【讨论】:

      • 使用 jQuery,您的 data 将只是 {data1: thisform.elements['data1'].value, data2: otherdata},而无需关心内容及其转义(如果您的 data1 值包含 & 现在会导致问题)
      猜你喜欢
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2015-10-20
      • 2012-03-08
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多