2012-02-14 2 views
0

У меня есть форма, в которой есть несколько элементов, которые я добавил через Jquery (динамически), но проблема в том, что помимо этих переменных все получает POSTED в PHP действия файла.Динамически созданные текстовые поля не отправляют значения в форму php

Я хочу получить значения этих текстовых полей в файле php.

КОД:
Jquery код:

var temp = $('#waypoints').val(); 
var i=1; 
var inputButtons = "<b>Stopover:</b><input type='text' class='stopovers' name='stopover"+i+"'><br>"; 
var length = '<input type="hidden" value="'+temp+'" name="length" />'; 
inputButtons+= length; 

if(temp==0){ 

    $('div#stopovers').html(""); 
} 
else if(temp==1){ //if a single way point 

    $('div#stopovers').html(inputButtons); 

} 

else{ 
while(i<temp){ 

    i++; 
    inputButtons += "<b>Stopover:</b><input type='text' class='stopovers' name='stopover"+i+"'><br>"; 
    $('div#stopovers').html(inputButtons); 
    } 
} 

PHP код:

$start = $_POST['start']; 
$end = $_POST['end']; 
$length= $_POST['length']; 
echo $length; 
echo "<br><br>".$start; 
echo "<br><br>".$end; 


//inserting into the 'locations' table 
    $query = mysql_query("INSERT INTO `locations` (`pid`, `location`, `type`) VALUES ('$package_id', '$start', 'start');"); 

    $query = mysql_query("INSERT INTO `locations` (`pid`, `location`, `type`) VALUES ('$package_id', '$end', 'destination');"); 

$j=0; 
for($i=1; $i<=$length; $i++){ 

    $stopover='stopover'.$i; 
    $stopovers[j]=$_POST[$stopover]; 
    //echo 'stopover'.$i; 
    $query = mysql_query("INSERT INTO `blankand_pts`.`locations` (`pid`, `location`, `type`) VALUES ('$package_id', '$stopovers[j]', 'stopover') "); 
    echo "<br><br>blah: ".$stopovers[j]; 
    $j++; 
} 

HTML/Код формы:

<b>Starting city:</b> 
    <input type="text" id="start" name="start"><div class="undertext">Format: New Delhi, India</div> 

     <b>Number of stop overs:</b> 
      <select id="waypoints"> 
     <option selected="selected">Select</option> 
     <option value="0">0</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5">5</option> 
     <option value="6">6</option> 
     <option value="7">7</option> 
      </select><br> 

     <div id="stopovers"> 

     </div><br> 

     <b>Destination:</b> 
     <input type="text" id="end" name="end"><div class="undertext">Format: New Delhi, India</div> 
     <br /> 

Примечание: Запросы работают прекрасно, когда я установил вручную значения

+0

вам нужно добавить еще источник - где находится форма? где добавляются новые элементы в форму? – ManseUK

+0

Слишком много элементов в форме, которые не связаны с этим, они работают нормально, я чувствую, что проблема здесь где-то. но, если вы хотите, я загружу код, который тоже находится в форме? –

ответ

0

Вы можете создать входы массива (например, <input name='stopover[]' ...

Затем в PHP, вы могли бы заменить for с foreach

foreach($_POST['stopover'] as $stopover){ 
    $query = mysql_query("INSERT INTO `blankand_pts`.`locations` (`pid`, `location`, `type`) VALUES ('$package_id', '$stopover', 'stopover') "); 
    echo "<br><br>blah: ".$stopover; 
} 
+0

Не работает. на самом деле проблема в том, что: php-action-file не получает значение для любого из элементов, созданных с помощью jquery. –

+1

Вы уверены, что сгенерированные элементы находятся в теге FORM? Вы можете сделать 'var_dump ($ _ POST)' in php, чтобы увидеть отправленные значения. –

+0

Да, человек! Я просто попробовал. возможно ли, чтобы динамические элементы не были отправлены в файл php-action-file? –

0

Если бы тот же isssue. Решил его, сохранив вывод php forloop в строку конкатенации и выполнив «эхо» там, где это было необходимо.

echo $ omenu везде, где требуется, и он работает. проблема связана со скоростью элементов рендеринга страницы.

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