2017-08-24 35 views
1

輸入在我的jQuery代碼我有:裝滿陣列

$("#show").append("<img src=" +attachment.url+" alt="+attachment.alt+" title="+attachment.title+" description="+attachment.caption+" class='img-responsive img-thumbnail'/><input type='hidden' name='my_image_URL[]' value="+attachment.url+"></span>"); 

我的jQuery代碼增加了對新聞選擇的圖像領域,填補投入名稱my_image_URL[]

在PHP:

if (isset($_POST['my_image_URL'])) {  
     $urls = $_POST['my_image_URL']; 
     echo '<input type="hidden" name="imagens_home" value="'.$urls.'"/>'; 
     } 

我試圖在隱藏輸入添加$urls陣列。

而且後,如果它的工作原理確定:

  <?php 
       if ($urls != '') { 

       foreach ($urls as $url) { 
      ?>       
        <img src="<?php echo $url;?>" class="img-responsive img-thumbnail " /> 
        <input name="my_image_URL[]" value="<?php echo $url;?>"/> 
       </div>    
      <?php 
       }; 
       } 
      ?> 

但是這部分代碼不填充輸入:

if (isset($_POST['my_image_URL'])) {  
     $urls = $_POST['my_image_URL']; 
     echo '<input type="hidden" name="imagens_home" value="'.$urls.'"/>'; 
     } 

----------更新 - ------

options.php

register_setting(
      'tema-setting-group',//string $option_group 
      'imagens_home' //string $option_name 
      //calback $sanitize_calback  
     ); 

--- 
    add_settings_field(
     'home-imagens-top',//string $id 
     'Imagens',//String $title 
     'tema_home_imgs',//string $calback 
     'opcoes_do_tema',//string $page  
     'tema-home-options'//string $section 
     //string $args   
     ); 


//calback 
function tema_home_imgs(){ 
     $urlsImagens = esc_attr(get_option('imagens_home')); // RETURN DB DATA 

     include(get_template_directory() . '/inc/templates/selecao_imagens.php'); 

     if (isset($_POST['my_image_URL'])) { 

     $urls = $_POST['my_image_URL']; 
      echo '<input name="imagens_home" value="'.$json_encode($urls).'" style="width:300px"/>'; 


     } 
    } 

selecao_imagens.php

<input id="my_upl_button" type="button" value="Escolher Imagens" /><br/> 

    <div class="row"> 
      <div id="exibe" class="sortable">  

      <?php   
      $urls = json_decode($urlsImagens, true); 
       if ($urls != '') { 
       foreach ($urls as $url) { 
      ?>   
        <img src="<?php echo $url;?>" class="img-responsive img-thumbnail " /> 
        <input name="my_image_URL[]" value="<?php echo $url;?>"/> 

      <?php 
       }; 
       } 
      ?> 
    </div> 
    </div> 

<?php settings_errors();?> 

<form method="post" action="options.php"> 
    <?php settings_fields ('tema-setting-group'); ?> 

    <?php do_settings_sections (
    'opcoes_do_tema'//string $page 

    ); ?> 



    <?php submit_button(); 

    ?> 

</form> 

-------- UPDATE 2 -------

我試圖theme_options.php:

echo '<input name="imagens_home" value="' . htmlspecialchars(json_encode($urls)) . '" />'; 

但它尚未填入輸入。

我也只嘗試:

If (isset ($ _POST ['my_image_URL'])) { 
Print_r ($ _ POST ['my_image_URL']); 

} 

但之後提交不會出現在屏幕上的任何內容,形式正確保存,除了我試圖挽救陣列,如果我把一些其他的投入手動信息就OK了。但我不明白爲什麼它不捕獲每個圖像輸入的名稱。在表格的操作是這樣的:

<Form method = 「post」 action = 「options.php」> 

我使用的設置API

感謝

+0

回聲 ''; 它是隱藏類型,所以你確定沒有工作? –

+0

它並沒有真正的工作我已經刪除了隱藏的 – Gislef

+1

它'$ urls'是一個PHP數組,你不能將它連接到一個像這樣的字符串。你應該將它轉換爲一個格式對應於html值的字符串數組屬性 – Kaddath

回答

1

我試圖在隱藏輸入加$網址陣列。

如果我明白了,您試圖將數組值存儲在隱藏輸入中,以便稍後檢索它。問題是,這是行不通......

echo '<input type="hidden" name="imagens_home" value="'.$urls.'"/>'; 

...因爲當你回聲PHP數組你得到的是字符串Array,而不是實際的數組內容。

你可以把數組成JSON字符串,但:

echo '<input type="hidden" name="imagens_home" value="'.$json_encode($urls).'"/>'; 

現在你隱藏的輸入具有正常的字符串。後來,當表單被提交,你可以檢索:

$urls = json_decode($_POST['imagens_home'], true) 
+0

非常感謝您的回覆,但它仍然不適合我,輸入保持空白。 Alive to Die用戶解決方案也會返回空的 – Gislef

+0

@Gislef請具體說明。哪個輸入保持空白?什麼時候?你如何檢查? – BeetleJuice

+0

我更新了我的問題中的代碼,請參閱 – Gislef