首页 > 解决方案 > PHP AJAX JSON - 将输入转换为 JSON 和其他 PHP 文件获取价值

问题描述

我在提交 php 表单、将输入值转换为 json 以及其他 php 文件获取它时会发疯。

html

<form action="submit.php" method="post" name="form1" id="myform">
		<table width="100%" border="0" style="font-size: 65px;">
			<tr> 
				<td>Name</td>
				<td><input type="text" name="name" id="name"></td>
			</tr>
			<tr> 
			<tr> 
				<td></td>
				<td><button id="submit">Submit</button></td>
			</tr>
		</table>
	</form>
    <script src="script.js"></script>

脚本.js

    $('#myform').submit(function (event) {
  name = $('#name').val();
  var data = {
    name: name
  }
  $.ajax({
      type: "POST",
      url: 'submit.php',
      contentType: 'application/json',
      data: JSON.stringify(data),
      dataType: 'json'
    });
  return false
});

.php 文件

header('Content-Type: application/json');
$name_dirty = json_decode($_POST['name']);
echo $name_dirty;

有人能帮我吗?submit.php 为空白,我无法获取从 html 页面提交的值。非常感谢

标签: phpjqueryjsonajax

解决方案


你的 HTML

<table width="100%" border="0" style="font-size: 65px;">
        <tr> 
            <td>Name</td>
            <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr> 
        <tr> 
            <td></td>
            <td><button id="submit">Submit</button></td>
        </tr>
    </table>
<script src="script.js"></script>

你的 JS

  $('#submit').click(function() {
  name = $('#name').val()
  var data = {
    name: name
  }
  $.ajax({
      type: "POST",
      url: 'submit.php',
      data: data 
      dataType: 'json'
            complete: function (resultData) {
            alert('data has been send')
    })
})

在你的 php 中:

<?php

print_r($_POST['data'])

一些笔记。确保检查路径。在我的回答中,我假设问题出在代码中,而不是错误的路径。此外,当您使用form标签时,您可以使用提交按钮,例如 <input type="submit" value="Submit"> 在不使用 Javascript 的情况下提交表单。它适用于您的情况,但这只是解决您的问题的另一种方法。

在我的回答中,我删除了您的表单标签并触发了按钮单击操作。将不会重定向到页面,但如果它对您很重要,您可以在 js 中设置重定向,在我添加的 ajax 的成功功能上。目前,当它成功运行时,我只会发出一条警报消息。


推荐阅读