Mam następujący plik HTML:

<html>

<body>
  <div id="container">
    <section>
      <article id="news-card">
        <div id='identity'>011</div>
        <h1>HEADLINE</h1>
        <p>AUTHOR</p>
        <a href='#' class='readmore'>Read more</a>
        <form action='postnews.php' method='post'>
          <input type='checkbox' name='bookmark'>Bookmark?</input>
        </form>
      </article>
      <section>
  </div>
</body>

</html>

A oto plik PHP:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "News-Articles";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$_bookmark = isset($_POST["bookmark"]) ? 'Y' : 'N';
$sql =     "INSERT INTO stats (iid, bookmark, readmore, counter)
           VALUES ('$_iid', '$_bookmark', NULL, NULL)
           ON DUPLICATE KEY UPDATE
           bookmark = '$_bookmark';"
mysqli_query($conn, $update);
mysqli_close($conn);
?>

Chcę dołączyć wartość elementu z ID = "tożsamością" w atrybucie akcji formularza. Coś takiego:

<form action = "postnews.php?iid=getElementById(identity).innerHTML">

Tak więc w pliku PHP, mogę $_GET["iid"], aby wstawić wartość zakładki dla tego konkretnego IID. Jak mogę podejść do rozwiązania?

0
Himanshu Ahuja 27 czerwiec 2017, 02:54

3 odpowiedzi

Najlepsza odpowiedź

Możesz po prostu dodać IID = wartość do działania formularza na prześlij. Wkładam czek? Więc jeśli akcja ma już ciąg zapytania, do którego do tego dołącza.

var theForm = document.getElementById('bookmark-form');
theForm.addEventListener('submit', changeAction, false);

function changeAction(event)
{
  event = event || window.event;

  var form = event.target;
  var idDiv = document.getElementById('identity');
  var idToAdd = idDiv.innerHTML;
  var action = form.action;

  if (action.indexOf('?') === -1) {
    form.action = action + '?iid=' + idToAdd;
  } else {
    form.action = action + '&iid=' + idToAdd;
  }

  event.preventDefault();

  console.log(form.action);
}
<html>

<body>
  <div id="container">
    <section>
      <article id="news-card">
        <div id='identity'>011</div>
        <h1>HEADLINE</h1>
        <p>AUTHOR</p>
        <a href='#' class='readmore'>Read more</a>
        <form action='postnews.php' method='post' id="bookmark-form">
          <input type='checkbox' name='bookmark'>Bookmark?</input>
          <input type='submit' value='Submit'>
        </form>
      </article>
      <section>
  </div>
</body>

</html>
2
Russell 27 czerwiec 2017, 00:29
<html>
<body>
    <div id="container">
        <section>
            <article id="news-card">
                <div id='identity'>011</div>
                <h1>HEADLINE</h1>
                <p>AUTHOR</p>
                <a href='#' class='readmore'>Read more</a>
                <form action='' method='post' id='postNewsForm'>
                    <input type='checkbox' name='bookmark'>Bookmark?</input>
                </form>
            </article>
        </section>
    </div>

    <script>
       var x = document.getElementById("identity").innerHTML;
       var y = "postnews.php?iid=" + x;     
       document.postNewsForm.action = y;
    </script>
</body>
</html>
0
Ottoman 27 czerwiec 2017, 00:34

Możesz dołączyć ukryte pole wejściowe.

<input type='hidden' name='iid' value="<?php echo $iid; ?>" >

Spowoduje to udostępnienie go w swojej zmiennej $ _POST E.G. $_POST['iid']

1
Stretch0 26 czerwiec 2017, 23:56