Динамически создаваемые текстовые поля, не передающие значения в форму php - PullRequest
0 голосов
/ 14 февраля 2012

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

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

КОД:
Код запроса:

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 />

ПРИМЕЧАНИЕ. Запросы отлично работают, когдаЯ устанавливаю ручные значения

Ответы [ 2 ]

0 голосов
/ 26 апреля 2013

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

<?php
$omenu="";
$h= $_SESSION['days']+1;
for($i=1; $i<$h;$i++){
    $omenu .="<option>"."Day$i"."</option>";
}
?>

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

0 голосов
/ 14 февраля 2012

Вы можете создать входные данные массива (например, <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;
}
...