如何将数据从PHP发送到HTML

时间:2017-09-06 03:22:56

标签: javascript php jquery html

有没有办法在不刷新页面的情况下将数据从php发送到html。

  1. 我打开html上传图片..
  2. 所以我会去process.php,当上传成功时我得到了这些图片的目标路径。
  3. 我的问题是。如何在没有刷新页面的情况下将目标路径发送到我的html。
  4. 这是我的javascript:

    $destination_path = "../dir/";
    
    $result = 0;
    $target_path = $destination_path . basename( $_FILES['myfile']['name']);
    
    if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
        $result = 1;
    //$target-path need to send to input in html
    }
       sleep(1);
    

    process.php

    if (start <= end) {

2 个答案:

答案 0 :(得分:0)

如果您的Javascript将通过AJAX处理上传事件。您可以返回正确的图片网址并附加回您的网页。

在将jquery添加到html页面之前尝试此操作:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

Html表格:

<span id="returnImage"></span>
<form id="uploadImage">
<label id="img">Upload Image<label>
<input name="images" type="file" class="img"/>
<input type="submit"/>
</form>

JS:

$("#uploadImage").submit(function(e){
  e.preventDefault();
  var data = new FormData();
  $.each($('.img'), function(i, obj) {
    $.each(obj.files,function(j, file){
      data.append('upload_files['+i+']', file);
    });
  });
  $.ajax({
    type: 'post',
    data: data,
    url: "image_processor.php",
    cache: false,
    contentType: false,
    processData: false,
    success: function(data){
    var dataArray = $.parseJSON(data);
        $("#returnImage").html('<img src="'+dataArray["img"]+'"/>')
    }); 
  });
});

image_processor.php

<?php
        $array_add_counter = 0;
        foreach ($_FILES['upload_files']['name'] as $imageNameArray){
            $NewImage[$array_add_counter]['name'] = $imageNameArray;
            $array_add_counter++;
        }
        $array_add_counter = 0;
        foreach ($_FILES['upload_files']['type'] as $imageTypeArray){
            $NewImage[$array_add_counter]['type'] = $imageTypeArray;
            $array_add_counter++;
        }
        $array_add_counter = 0;
        foreach ($_FILES['upload_files']['tmp_name'] as $imageTmpArray){
            $NewImage[$array_add_counter]['tmp_name'] = $imageTmpArray;
            $array_add_counter++;
        }
        $array_add_counter = 0;
        foreach ($_FILES['upload_files']['error'] as $imageErrorArray){
            $NewImage[$array_add_counter]['error'] = $imageErrorArray;
            $array_add_counter++;
        }
        $array_add_counter = 0;
        foreach ($_FILES['upload_files']['size'] as $imageSizeArray){
            $NewImage[$array_add_counter]['size'] = $imageSizeArray;
            $array_add_counter++;
        }
        foreach ($NewImage as $images) {
           move_uploaded_file($images["tmp_name"], "ImageLocation/".$images["name"]);
           $return['img'] = "ImageLocation/".$images["name"];

        }
        echo json_encode($return);
?>

我测试了它在我的localhost中工作。

答案 1 :(得分:0)

我的建议是ajax。它更干净,更有效率。 示例是解析数据的方式

这适用于HTML到PHP

$('#submit').click(function()
{
    $.ajax({
        url: send_email.php,
        type:'POST',
        data:
        {
            email: email_address,
            message: message
        },
        success: function(msg)
        {
            alert('Email Sent');
        }               
    });
});

如果要将值从PHP传递到HTML 一个例子是:

<?php
if( isset($_GET['submit']) )
{
    //be sure to validate and clean your variables
    $val1 = htmlentities($_GET['val1']);
    $val2 = htmlentities($_GET['val2']);

    //then you can use them in a PHP function. 
    $result = myFunction($val1, $val2);
}
?>

<?php if( isset($result) ) echo $result; //print the result above the form ?>

<form action="" method="get">
    Inserisci number1: 
    <input type="text" name="val1" id="val1"></input>

    <?php echo "ciaoooo"; ?>

    <br></br>
    Inserisci number2:
    <input type="text" name="val2" id="val2"></input>

    <br></br>

    <input type="submit" name="submit" value="send"></input>
</form>

在你的情况下,它将是:

$destination_path = "../dir/";

$result = 0;
$target_path = $destination_path . basename( $_FILES['myfile']['name']);

if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
    $result = 1;
   $val1 = htmlentities($_GET['val1']);  // this value could be obtain via HTML
}
   sleep(1);