时间:2017-08-07 05:08:55

标签: php global-variables isset

我正在实现一个用户应该:

的界面
  1. uploadframe.php 中。选择提供者;
  2. upload.php 中。选择&上传文件,使用AJAX Request发送到服务器。
  3. 问题在于我通过POST方法获取了提供商名称(非常重要),在AJAX Request之后,它返回到 upload.php 页面,其中提供商是没有显示,因为这次不是isset()。我想保留相同的提供商名称,直到我返回 Uploadframe.php 页面并在那里进行更改。

    Uploadframe.php:

    <form action="upload.php" enctype="multipart/form-data" method="post">
        <select name="provider">
            <option value ="activkcell">Activ / Kcell</option>
            <option value ="beeline">Beeline</option>
            <option value ="tele2altel">Tele2 / Altel</option>
        </select>
        <p><input type="file" name="rawexcel[]" id ="rawexcel" multiple> </p>
        <p>
            <input type ="submit" value="Загрузить" name ="submit" id="uplbutton">
        </p>
    </form>
    

    upload.php的:

    if (isset($_POST['provider'])) {
    
        //select action to perform on case of different providers
       if ($_POST['provider'] == 'activkcell') {
           global $provider;
           $provider = "Activ     / Kcell";
       }
    
       if ($_POST['provider'] == 'beeline') {
           global $provider;
           $provider = "Beeline";
       }
    
       if ($_POST['provider'] == 'tele2altel') {
           global $provider;
           $provider = "Tele2";
       }
    }
    
    <p>You have selected provider <?php global $provider; echo $provider ?></p>
    // File selection
    // Jjax script 
    

    我尝试将$provider变量设为全局 - 无效,使用define('Provider',$ provider) - 在ajax request之后显示'Provider'。

    将不胜感激任何帮助。 (我不想将其保存在其他地方,例如创建文本文件并在 uploadframe.php 中更新。我相信有一个比这更好的解决方案。)

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您的Uploadframe.php会将provider的值提交给upload.php,并且在此upload.php上,您在用户上传文件后进行ajax调用需要处理ajax请求的脚本中provider的值。

要执行此操作,请在您创建的ajax请求中发送provider的值(通过Uploadframe.php中的$ _POST接收)。这样,在处理AJAX请求时,您仍然可以在provider中获得upload.php的值。