новичок в ajax здесь. Я пытаюсь отправить некоторые данные в php-файл на моем сервере, однако данные не проходят через. Я получаю динамически созданную таблицу из результатов запроса. Я пытаюсь использовать document.getElementById, но это не захватывает мои данные (и это делает так, что это не так, поскольку каждая динамически созданная строка будет иметь тот же самый идентификатор, я думаю) Я также попытался передать переменные в функции типа так:
print("<tr onclick='ajax_post({$result["date"]}, {$result["work"]});'>");
и в функции js, захватывающей переменные следующим образом:
ajax_post(a, b){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create variables to send to our PHP file var url = "ajaxform.php"; var dt = a; var wk = b; var vars = "date="+dt+"&workout="+wk; }
но здесь это не работает. Вот мой код:
<script> function ajax_post(){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create variables to send to our PHP file var url = "ajaxform.php"; var dt = document.getElementById("date").value; var wk = document.getElementById("work").value; var vars = "date="+dt+"&workout="+wk; hr.open("POST", url, true); // Set content type header information for sending url encoded variables in the request hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // Access the onreadystatechange event for the XMLHttpRequest object hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; document.getElementById("status").innerHTML = return_data; } } // Send the data to PHP now... and wait for response to update the status div hr.send(vars); // Actually execute the request document.getElementById("status").innerHTML = "processing..."; } </script> <p id="status"></p> <div> <table class="table table-striped"> <thead> <tr> <th class="bold">Date</th> <th class="bold">Work</th> <th class="bold">Mood</th> </tr> </thead> <tbody> <?php foreach ($results as $result) { print("<tr onclick='ajax_post();'>"); print("<td class='date' id='date' name='date' value='{$result["date"]}'>{$result["date"]}</td>"); print("<td id='workout' name='workout' value='{$result["work"]}'>{$result["work"]}</td>"); print("<td>{$result["mood"]}</td>"); print("</tr>"); } ?> </tbody> </table> </div>
Любая помощь будет принята с благодарностью. Я открыт для jQuery-решения, если это невозможно выполнить с помощью простого js.
Благодаря!!!!!!