2009-07-01 1 views
1

Я использую CakePhp и jQuery в своем приложении FormBuilder. Я имею форму, как

<form action="/cake_1.2.1.8004/index.php/results/submit1" method="post" 
                  id="ResultSubmit1Form"> 
    <fieldset style="display: none;"> 
     <input type="hidden" value="POST" name="_method"/>  
    </fieldset> 

    <div class="input text"> 
     <label for="1">Doj</label> 
     <input type="text" value="" style="width: 300px;" id="1" name="Doj"/> 
    </div> 

    <div class="input text"> 
     <label for="2">Name</label> 
     <input type="text" value="" style="width: 300px;" id="2" name="Name"/> 
    </div> 
    <div class="input textarea"> 
     <label for="3">Address</label> 
     <textarea style="height: 300px;" id="3" rows="6" cols="30" name="Address"/> 
    </div> 
    <div class="input text"> 
     <label for="4">Age</label> 
     <input type="text" value="" style="width: 200px;" id="4" name="Age"/> 
    </div> 
    <br/><br/> 
    <div class="submit"> 
     <input type="submit" value="submit"/> 
    </div> 
</form> 

Я хочу, чтобы получить все значения, введенные в форму.

Использование Form JQuery плагин я использовал следующий код для получения значений, как

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#submit").eq(0).click(function(){ 

      var serializedFormStr = $("#ResultSubmit1Form :input[value]").serialize(); 
      alert(serializedFormStr); 
      $.ajax({ 
       type: "POST", 
       url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1", 
       data: serializedFormStr, 
       success: function(msg){ 
        alert("Data Saved: " + msg); 
       }//success 
      });//ajax 
     }); 
    });//ready 
</script> 

The alert(serializedFormStr); показывает, как

 _method=POST&Doj=07%2F09%2F2009&Name=aruna&Address=xyz&Age=22 

же я извлекаться в мой контроллер CakePHP, как

function submit1() 
    { 
     echo "In controller ".http_build_query($_POST);//echoes correctly 
    } 

Как я могу получить отдельные данные из этой строки запроса, чтобы я c сохранить его в моей базе данных. Просьба предложить мне ..

ответ

0

Я не понимаю ... почему вы звоните http_build_query? Вам просто нужно посмотреть на $_POST['Doj'].

Вы можете перебрать $ _POST так:

foreach ($_POST as $key => $value) 
    echo 'The value of ' . $key . ' is ' . $value; 

Или получить массив всех ключей:

$keys = array_keys($_POST); 
// $keys is now array('Doj', 'Name', 'Address', 'Age') 

ли это поможет?

+0

На самом деле я не знал, fieldname Doj в моем контроллере. Поэтому я отправляю как имя поля, так и его значение и хочу сохранить оба из них в таблице. – useranon

1

У меня возникла проблема с этим, и было обнаружено, что http_build_query имеет три аргумента доступных "с 5.1.2 Добавлен параметр arg_separator." (Локальный файл Ms-windows: mk: @MSITStore: D: \ Reference \ oq \ php \ php_manual.chm ::/RES/function.http-билд-query.html на Интернете, как http://php.net/manual/en/function.http-build-query.php)

Когда я сделал $ _POST вара свалки моих второе и третьи имена varibale выходило в качестве усилителя; rowsPerPage и усилитель ; startNumber ведущий & был съеден

по какой причине я должен был сделать это в том, что я делаю,

$postdata = http_build_query(
    array(
    'whereRequest' => $whereRequest, 
    'rowsPerPage' => '20', 
'startNumber' => '0' 
    ) 
    ,'','&' 
); 

Второй аргумент (numeric_prefix - который является строкой) в моем случае не нужен, и я явно задал параметр arg_separator для '&', который был, я уверен, по умолчанию любым способом.

Примеры файл справки указывается &ampamp; как вариант, но это не сработало,

За то, что когда-либо причине все прошло нормально после того, как я явно установить параметр arg_separator к: «&»

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