2016-10-26 2 views
0

J'ai un formulaire avec des ensembles d'entrées qui peuvent être créées dynamiquement - see here.PHP - Prévention des sauts de ligne dans la zone de texte créée dynamiquement

Afin de pousser les valeurs recueillies à partir de ces entrées à une feuille .csv et de les garder ensemble dans une seule cellule, j'utilise la fonction PHP suivante. Il rassemble le contenu des 3 entrées, le sauvegarde dans le .csv dans une seule cellule, et pour chaque nouvelle itération d'entrées, il sépare simplement les entrées avec un "//" mais le conserve dans la même cellule (comme ceci: Président , 2015, j'étais le président // vice-président, 2014, j'étais le vice-président).

PHP

$provincialInvolvement = $_POST["provincialInvolvement"]; 
$provincialInvolvementValues = ""; 
$e = 0; 

foreach($provincialInvolvement as $piValue) 
    { 
     $provincialInvolvementValues .= $piValue; 
     $e++; 
     if($e % 3 == 0) 
      { 
       $provincialInvolvementValues .= "//"; 
      } 

    } 

Mon problème est parce que la dernière entrée est une zone de texte, si un saut de ligne est mis en (quelqu'un frappe la touche entrée), il brise la forme du .csv et le met sur une nouvelle ligne. J'essaye d'écrire une fonction sur la partie de mon PHP qui, en enregistrant la valeur dans $provincialInvolvementValues, supprime tous les sauts de ligne mais je n'ai pas de chance.

Voici le problème de la fonction, c'est qu'il ne consigne rien.

$provincialInvolvement = $_POST["provincialInvolvement"]; 
$provincialInvolvementValues = ""; 
$e = 0; 

foreach($provincialInvolvement as $piValue) 
    { 
     $provincialInvolvementValues .= $piValue; 
     $e++; 
     $provincialInvolvementValues = preg_replace("/(\r|\n)/ ", "", $provincialInvolvementValues); 
     return $provincialInvolvementValues; 
     if($e % 3 == 0) 
      { 
       $provincialInvolvementValues .= "//"; 
      } 

    } 
+1

Peut-être essayer ceci: 'preg_replace ("? \ R \ n \ s *", "", $ provincialInvolvementValues)' - 'sont généralement des sauts de ligne \ n' ou '\ r \ n' pour que cela fonctionne mieux. En outre, le 'return $ provincialInvolvementValues;' est probablement faux dans la boucle ... – Lucero

+0

A travaillé comme un charme! Merci Monsieur! –

+0

Heureux que cela a fonctionné, je l'ai ajouté comme réponse afin que vous puissiez l'accepter le problème est résolu par cela. – Lucero

Répondre

1

Peut-être essayer ceci: preg_replace("\r?\n\s*", "", $provincialInvolvementValues) - sont généralement les nouvelles lignes \n ou \r\n si cela pourrait fonctionner mieux.

En outre, le return $provincialInvolvementValues; est probablement faux dans la boucle ...