2015-05-12 3 views
1

У меня есть следующий PHP кодФорма Значения не получают представленный

<form action="admin.php" method="post"> 

    <?php 
    $conn=mysqli_connect("localhost","root","vravi","mrconnect"); 
    if(!$conn) 
    { 
     echo "error establishing the connection"; 
    } 
    $sql="select UserID,UserEmail from Users order by UserID"; 
    $result=mysqli_query($conn,$sql); 


    if(mysqli_num_rows($result)>0) 
    { 
     while($row=mysqli_fetch_assoc($result)) 
     { 

      echo $row["UserID"]; 
      echo $row["UserEmail"]." ".'<input type=\"text\" name=\"name[]\"/>'."</br>";  
    } 
    echo '<button type=\"submit\" name=\"submit\" value=\"submit\">'.Submit.'</button></br>'; 
} 
    ?> 
    </form> 

, который дает следующий результат в браузере. enter image description here

Теперь у меня есть два вопроса.

1) Когда я пытаюсь вставить некоторые значения в одно из текстовых полей и нажать кнопку отправки внизу, значения не будут отправляться.

ниже - это файл admin.php для php.

<?php 
    if(isset($_POST['submit'])) 
    { 
     echo "submitted"; 
    } 
    else 
    { 
     echo "not submitted"; 
    } 


    ?> 

2) Теперь второй вопрос заключается в том, что я хочу, чтобы мой электронный идентификатор, чтобы получить представленный через форму, но это просто обычный текст, может кто-нибудь сказать мне, как мы делаем это?

+1

@ Rizier123 «Кнопка» в порядке, если 'type'' 'submit'. – Mave

+3

Я думаю, что escape-последовательность создает проблему для кнопки отправки, – Crazyrubixfan

+0

добавляет атрибут имени в ваш '' и с помощью массива вы можете использовать идентификатор электронной почты в качестве ключа -' ' '; 'then in php вы можете сделать' foreach ($ _ POST [' name '] как $ UserID => $ value) ' – Sean

ответ

2

Есть несколько вещей, которые могли бы изменение:

  1. Вам не нужно, чтобы избежать двойных кавычек, когда они находятся между одинарными кавычками
  2. Использование name="name['.$row["UserID"].']"
  3. Изменение <button... к <input type="submit"...

Ваша страница будет выглядеть следующим образом:

<form action="admin.php" method="post"> 
    <?php 
    $conn=mysqli_connect("localhost","root","vravi","mrconnect"); 
    if(!$conn) { echo "error establishing the connection"; } 

    $sql="select UserID,UserEmail from Users order by UserID"; 
    $result=mysqli_query($conn,$sql); 

    if(mysqli_num_rows($result)>0) { 
     while($row=mysqli_fetch_assoc($result)) { 
      echo $row["UserID"] . ' ' . $row["UserEmail"] ." "; 
      echo '<input type="text" name="name['.$row["UserID"].']" />'."<br />"; 
     } 
     echo '<button type="submit" name="submit" value="submit">Submit</button></br>'; 
    } 
    ?> 
</form> 

Затем, когда форма отправлена ​​в admin.php, вы можете установить name.

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    foreach($_POST['name'] as $data => $value) { 
     echo $data . ': ' . $value . '<br />'; 
     // will output 2: 12 
    } 
} 
?> 

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

+0

кнопка с типом отправки также отправит форму, не нужно ее менять. – Fadey

+0

@Fadey, [вы правы] (https: // разработчик .mozilla.org/en-US/docs/Web/HTML/Element/button # attr-type) .Я не знал этого и обновляю свой ответ. Спасибо за подсказку! – LinkinTED

0

Добавьте print_r(); в начало вашего скрипта, чтобы увидеть, что именно публикуется на вашей странице.

Исправьте синтаксис input - это неполное:

echo $row["UserEmail"]." ".'<input type=\"text\" 

должно быть что-то вроде:

echo $row["UserEmail"]." ".'<input type=\"text\" name=\"userEmail".$row["UserID"]."\" /> 

или даже лучше:

echo '<label>'.$row["UserEmail"].'</label><input type="text" name="userEmail['.$row["UserID"].']" />'; 
+2

Посмотрите справа от кода OP:' name = \ "имя [] \" />»«.
";' – Rizier123

+0

было бы проще получить доступ к php, если вы сделали массив для имени 'name = \ 'userEmail [". $ Row ["UserID"]. "] \" Вместо того, чтобы конкретизировать 'UserID' до конца 'userEmail' – Sean

+0

@Sean совершенно правильно - обновлено! – foxbeefly