Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 如何使用Ajax发送变量?_Php_Jquery_Ajax - Fatal编程技术网

Php 如何使用Ajax发送变量?

Php 如何使用Ajax发送变量?,php,jquery,ajax,Php,Jquery,Ajax,我试图用Ajax和PHP上传文件,但问题是我无法发送包含文件夹id的输入类型文本 这是我的HTML: <form method="post" enctype="multipart/form-data" action="uploadify.php"> <input type="file" name="images" id="images" multiple /> <input type="hidden" name="eid" valu

我试图用Ajax和PHP上传文件,但问题是我无法发送包含文件夹id的输入类型文本

这是我的HTML:

<form method="post" enctype="multipart/form-data"  action="uploadify.php">
        <input type="file" name="images" id="images" multiple />
        <input type="hidden" name="eid" value="<?php echo $eid;?>" />
        <input type="btn submit" id="btn" value="Upload" />
      </form>

    <div id="response"></div>
    <ul id="image-list">

    </ul>

给输入字段一个id,从表单中获取id,因此您可以获取与id对应的值:

<input id='theEIdGuy' type="hidden" name="eid" value="<?php echo $eid;?>" />
使用

使用原始javascript,您可以得到如下结果(但如果您只在PHP中需要它,则不必这样做):

使用jQuery可以得到如下结果:

var theEIDGuy = $('#theEIdGuy').val();

这些天我面临着同样的问题。。。解决方案比您想象的更简单:)

更改此项:

 if (formdata) {
                    formdata.append("images[]", file);
                }
与:

对我来说,使用Jquery/Ajax更简单。。编码更少,更干净。我试着迅速调整它以满足你的需要

 $(document).ready(function() {
$('#images').change(function(){
var variable_eid = $('#eid').val();
var data;
data = new FormData();
data.append( 'images', $('#file')[0].files[0] );
data.append( 'eid', variable_eid);
 $.ajax({
        url: 'uploadify.php',
        data:data,
       processData: false,
       contentType: false,
        type: 'POST',
        success: function ( data ) {
           $('#response').html(data);
        }
        });
    });
        });

a) 从更简单的东西开始,比如文本,而不是文件。b) 你甚至没有使用jQuery,试试吧,它会让事情变得更简单,如果你想的话,你可以使用纯JavaScript。c) 不要使用表单如果你要使用AJAX,AJAX的美妙之处在于你不需要表单,你只需要输入字段和按钮就可以收听。@Jonast92我知道它不需要表单,我知道如何只发送文本字段。。这就是我在Netuts上找到的功能,但唯一缺少的是我无法发送eid字段?如果我能够使用此功能发布该字段,我的图库将完成。请查看我的答案。此外,IE9和一些移动浏览器不支持formData,您可能只需要使用一个对象。尝试你的建议太好了。让我知道它是如何进行的。我不知道我将在哪里包括这个代码`$theEIDGuy=isset($\u POST['theEIDGuy'])$_POST['theEIdGuy']:“”;而不是$eid=$_POST['eid'];那么这就不可能是真正的问题了,告诉我$eid转换成的值。
$eid = isset($_POST['theEIdGuy']) ? $_POST['theEIdGuy'] : "It's not set :(";
var theEIdGuy = document.getElementById('theEIdGuy').value;
var theEIDGuy = $('#theEIdGuy').val();
 if (formdata) {
                    formdata.append("images[]", file);
                }
 if (formdata) {
var variable_eid = document.getElementById("eid");
                    formdata.append("images[]", file);
                    formdata.append("eid", variable_eid);
                }
 $(document).ready(function() {
$('#images').change(function(){
var variable_eid = $('#eid').val();
var data;
data = new FormData();
data.append( 'images', $('#file')[0].files[0] );
data.append( 'eid', variable_eid);
 $.ajax({
        url: 'uploadify.php',
        data:data,
       processData: false,
       contentType: false,
        type: 'POST',
        success: function ( data ) {
           $('#response').html(data);
        }
        });
    });
        });