通过php中上传文件的ajax发布值

时间:2014-12-16 13:27:47

标签: php ajax

我们试图通过AJAX发布一个数据字符串,它的外观如何

// if CAPTCHA is correctly entered!                       
    if ($resp->is_valid) {  echo $tmpName; ?> 


                      <script type="text/javascript">

$(document).ready(function(){

   alert("in ready");
        var name = "<?php echo $_POST['name']; ?>";

        var email = "<?php echo $_POST['email']; ?>";
        var state = "<?php echo $_POST['state']; ?>";
        var contact = "<?php echo $_POST['phone']; ?>";
         var message = "<?php echo strtr($_POST['message'], array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />')); ?>";


        // Returns successful data submission message when the entered information is stored in database.
       var dataString = 'name1='+ name + '&email1='+ email + '&state1='+ state + '&contact1='+ contact + '&message1='+ message +'&tmpName1='+ "<?php echo $tmpName ?>" +'&fileType1='+ "<?php echo $fileType ?>" +'&fileName1='+ "<?php echo $fileName ?>"; 


       alert(dataString);

        if(name==''||email==''||contact=='')
        {
            alert("Please Fill All Fields");
        }
        else
        {
        // AJAX Code To Submit Form.
            $.ajax({
                type: "POST",
                url: "mailer.php",
                data: dataString,
                cache: false,
                success: function(result){
                    alert(result);
                }
            });
        }
        return false;

});

当我们试图获取tmpName1的值但我们无法得到它但是像name1一样休息时我们可以获得该值。任何人都可以就此问题提出建议吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用不同的方法来命名值。

var dvals = {};

dvals = {
    name1: name,
    email1: email,
    ...
};

就我个人而言,我不是这样做的,我不是百分之百确定原因,但我确实知道我在我的代码中使用。

var dvals = {};
dvals['name1'] = name;
dvals['email1'] = email
...

您可以使用它来确定每个名称,然后用dvals替换AJAX代码中的dataString。我不确定为什么你的dataString会不正确,但我确实知道我因为随机问题而停止使用它,这让我觉得它不可靠。这就是我转而使用上述方法的原因。

答案 1 :(得分:0)

你需要在发布它时得到它 - 这意味着如果你这样写:

dataString = {name_1:name, course_1:course},

然后您必须使用您提供的名称检索它:name_1course_1,否则它将无效。

答案 2 :(得分:0)

这是正确的方法:

var dataString = 'name1='+ name + '&email1='+ email + '&state1='+ state + '&contact1='+ contact + '&message1='+ message +'&tmpName1=<?php echo $tmpName ?>&fileType1= <?php echo $fileType ?>&fileName1=<?php echo $fileName ?>';

但这种方式更好:

var tmpName = '<?php echo $tmpName ?>'||'',
fileType    = '<?php echo $fileType ?>'||'',
fileName    = '<?php echo $fileName ?>'||'';

var params = {
    name1:name,
    email1:email,
    state1:state,
    contact1:contact,
    message1:message,
    tmpName1:tmpName,
    fileType1:fileType,
    fileName1:fileName
}

alert(params);

        if(name==''||email==''||contact=='')
        {
            alert("Please Fill All Fields");
        }
        else
        {
        // AJAX Code To Submit Form.
            $.ajax({
                type: "POST",
                url: "mailer.php",
                data: params,
                cache: false,
                success: function(result){
                    alert(result);
                }
            });
        }
        return false;