2014-12-08 2 views
0

Я попытался удалить пробел, но не работаю. Я использую trim для удаления пробелов. Я понял в php, для обратного вызова в responseText ajax.Удаление строки пробела из строковой переменной в php

$orderHTML = $producto['id'].'#'.$producto['nombre_producto'].'*'.$producto['precioVenta'].'*'.$producto['descripcion'].'*'.$producto['descatalogado'].'@'.$producto['cantidad_stock']; 
    echo trim($orderHTML); 

В моей AJAX данные результат:

data: "  1#jeans*1.00**[email protected]" 

I've получил мой вызов PHP-это:

GET "http://localhost:8080/ajax/products_ajax.php?idProducto=1&opcion=2" 

Мой РНР:

<?php 
require_once '../../vendor/autoload.php'; 
require_once '../../config.php'; 
require_once '/functions/function_orders.php'; 
$opcion = $_REQUEST['opcion']; 

switch($opcion) 
{ 
    case '1': 

     if(isset($_POST['parametro1'])&&isset($_POST['parametro2'])) 
     { 
      $orderHTML = getOrdersProduct($_POST['parametro1'],$_POST['parametro2']); 
      echo trim($orderHTML); 

     } 
     break; 

    case '2': 

     if(isset($_GET['idProducto'])) 
     { 
      $producto = getOrdersProduct1($_GET['idProducto']); 
      $orderHTML = trim($producto['id']).'#'.$producto['nombre_producto'].'*'.$producto['precioVenta'].'*'.$producto['descripcion'].'*'.$producto['descatalogado'].'@'.$producto['cantidad_stock']; 
      echo trim($orderHTML); 
     } 

} 

Мой запрос в идиоре:

function getOrdersProduct1($identificador) 
{ 
    return ORM::for_table('producto')-> 
    where('id',$identificador)->find_one()->as_array(); 
} 

Я реализую один var_dump ($ productos); die();

array (size=11) 
    'id' => string '1' (length=1) 
    'nombre_producto' => string 'jeans' (length=6) 
    'nombre_latin' => null 
    'peso' => string '100.00' (length=6) 
    'descatalogado' => string '0' (length=1) 
    'dimensiones' => null 
    'descripcion' => null 
    'cantidad_stock' => string '100' (length=3) 
    'precioVenta' => string '1.00' (length=4) 
    'gama_id' => string '2' (length=1) 
    'proveedor_id' => string '1' (length=1) 

Что я делаю неправильно? спасибо

+2

где/как вы используете обрезку? без этого мы не можем вам помочь. Я предполагаю, что вы обрезали идентификатор, но не используете обрезанную копию. –

+0

Вы уверены, что перед '$ producto ['id']' нет ничего? Покажи нам все остальное. –

+0

проверить функцию ltrim(), чтобы удалить пробел с начала строки – henser

ответ

0

Вы должны правильно использовать функцию триммера со вторым аргументом. если все это не удастся, попробуйте

$str = trim(preg_replace('/\s+/',' ', $str)); 

строка кода удалит лишние пробелы, а также начальные и конечные пробелы. это сочетается с trim и preg_replace.

0

Мне кажется, что ваш $ producto ['id'] является текстовым полем фиксированной длины и поэтому имеет ведущие пробелы.

Вы должны использовать trim() или ltrim(), чтобы удалить их, прежде чем конкатенации значения в $orderHTML, а потом, когда вы приходите, чтобы прочитать код это будет документировано, почему вы должны были сделать эту манипуляцию, как и

$orderHTML = ltrim($producto['id']) . '#' . 
        $producto['nombre_producto'].'*'. 
        $producto['precioVenta'].'*'. 
        $producto['descripcion'].'*'. 
        $producto['descatalogado'].'@'. 
        $producto['cantidad_stock']; 

echo $orderHTML; 
+0

Я пробовал это и не работал –

+0

Вы изменили свой вопрос, так как я дал этот ответ – RiggsFolly

Смежные вопросы